changed component detection