тоесть в конструкторе по сути происходит инициализация?
И почему в данном случае чейнинг можно юзать цепочкой?
а не по отдельности?
Проблема еще в том как новое значения вернуть в состояние которая была, потому что новое значения получается слитно
function formatCurrency(value, type) {
var dots = value.toLocaleString().split(',').join('.');
if (type == "dollar") return dots + " $"
if (type == "euro") return dots + " €";
return dots;
}
другими словами в функциональном компоненте Post такакая запись
const Post = ({ match }) => {
Аналогична записи:
И вообще запись вот такая "({ match })". Как это называется?
const match = this.props.match;
this.props.match
const Post = ({ match }) => {
const { id } = match.params;
const post = posts.find(post => post.id === +id);
...
// match "вытаскивается" из props
const Post = (props) => {
const match = props.match;
const { id } = match.params;
const post = posts.find(post => post.id === +id);
class Post extends Component {
render () {
const match = this.props.match;
// или const {match} = this.props;
...
}
}
Тоесть сочетать в одном файле классовые компоненты и функциональные это нормальная практика?
писать классовые компоненты есть смысл только в том случае если я буду использовать состояние?
class MyComponent extends Component {
render () {
// тут достаем пропсы и возможно как-то их подготавливаем для дальнешего использования
return <... jsx-шаблон ... />
}
}
Начал учить программирование на JS, стало интересно как часто интерпретатор выполняет скрипт, с какой скоростью, создал такой код:
while(true);
console.time();
for(let i = 0; i < 10000; i++) {}
console.timeEnd();
а вы как обычно пишете первый или второй вариант? как посоветуете писать? или не важно?
ну функция ж может выполнить какую-то операцию с переменными, а потом возвратить значение. Тогда получается это тоже выражение а значит его можно вписать в { } в функцию render. Правильно?
А можете привести маленький пример как пропс принимает строку? Может я это и видел когда-то но не обращал на это внимания.
// компонент принимает пропс label
const MyComponent = ({ label }) => <div>{label}</div>
// передаем строку в label без фигурных скобок
<MyComponent label="test" />
// то же самое, что и
<MyComponent label={"test"} />
// однако для передачи значения другого типа, даже примитива (например, числа), понадобятся фигурные скобки
<MyComponent label={100} />
тоесть смена значения обьектов(например смена состояния)
let a = 10;
console.log(a=5) // в консоль выведется 5
или значение которое было получено в результате выполнения функции (например операции с аргументами функции или с локальными переменными в ее теле) - это выражения?
// так работает
<MyComponent label={cond ? "true branch" : "false brunch"} />
// не будет работать
<MyComponent label={if(cond) ...}
var dropdownElementList = document.querySelectorAll('.dropdown-menu');
var firstId = dropdownElementList[0].getAttribute('id'),
secondId = dropdownElementList[1].getAttribute('id')
var dropdownElementList = document.querySelectorAll('.dropdown-menu');
var idList = []
dropdownElementList.forEach(function(item) {
idList.push(item.getAttribute('id'));
})