Он использует эффективные алгоритмы сравнения для обновления изменений вперед и назад и других случаев использования.
.my-svg-selector:hover {
fill: red;
}
И зачем при выполнении setState() делать копию массива users, если в новый массив все равно копируются только ссылки на объекты, а не сами объекты? Только для того, чтобы в state появилась ссылка на новый массив и React задетектил изменение?
{
isFetching: {
'ALL': false,
'122bc-e43gf-24002-12ea1-ca785': true,
},
}
babel-preset-stage-0
и babel-preset-env
, и поставить @babel/preset-stage-0
.хотелось бы получить что-то подобное
class Day extends React.Component {
state = this.calculateCalories();
calculateCalories() {
/* ... */
return {
calories,
fat,
protein,
carbs,
};
}
handleClick = () => {
this.setState(this.calculateCalories());
};
render() {
...
}
}
Умные люди научили меня не мутировать state и делать примерно так
против такого способа выступает официальная документация, где сказано - не мутируй state и избегай forceUpdate(), это может привести к непрогнозируемым багагм.
Так я хочу спросить - ПОЧЕМУ так нельзя делать и КАКИЕ негативные последствия это может иметь?
Мне кажется, что в простых ситуациях, мутация state и немедленный вызов forceUpdate() будет работать не хуже setState, при этом код будет внятней и эффективней.
Тут написано только про точечную и скобочную запись
но я знаю что есть get и set.
export default withRouter(App);
const shouldShowFooter = this.props.location.pathname !== '/basket';
{shouldShowFooter && <Footer />}
const Foo = () => {
const [shouldShowBar, setShouldShowBar] = useState(true);
const handleBarClose = useCallback(() => {
setShouldShowBar(false);
}, []);
return (
<>
{shouldShowBar && <Bar onClose={handleBarClose} />}
</>
);
};
const Foo = ({ onConfirm }) => {
return (
<ModalWrapper
onConfirm={onConfirm}
body="Hello"
>
{showModal => (
<Button onClick={showModal}>Show modal</Button>
)}
</ModalWrapper>
);
}
Что-то изменится если это будет блог/интернет-магазин?
exclude: /node_modules/
"allowSyntheticDefaultImports": true,
import React from 'react';
"allowSyntheticDefaultImports"
установленно в значение false
, лоадер парсит библиотеки в node_modules, а дефолтные импорты React сделать с текущими настройками не может.