await setTimeoutawait new Promise(r => setTimeout(r, 1000)).catch((e)=>{this.handleUsersListErrors(e)})data: () => ({
status: 'unknown',
val: 'empty',
}),
methods: {
getVal() {
this.status = 'awaiting request answer';
return new Promise((...r) => {
setTimeout(() => {
const max = 10000;
this.val = Math.random() * max | 0;
r[+(this.val < max * 0.9)]();
}, 1000);
}).catch(this.handleError);
},
handleError() {
this.status = 'ERROR, awaiting new request';
return new Promise(r => setTimeout(r, 2000)).then(this.getVal);
},
},
async created() {
await this.getVal();
this.status = 'OK';
},<div>status: {{ status }}</div>
<div>value: {{ val }}</div>
изучаю метод фильтр
greater than or equal to 8.0
rating > 8combination of filter and map
watchList.filter(n => n.imdbRating >= 8).map(n => ({ title: n.Title, rating: n.imdbRating }))
<div id="app"></div>function App() {
const [ dark, setDark ] = React.useState(null);
const updateDark = e => setDark(e.type === 'mouseover' ? e.currentTarget.id : null);
return (
<React.Fragment>
{[ 'left', 'right' ].map(n => (
<div
id={n}
key={n}
onMouseOver={updateDark}
onMouseLeave={updateDark}
className={dark && dark !== n ? 'dark' : ''}
></div>
))}
</React.Fragment>
);
}
ReactDOM.render(<App />, document.getElementById('app'));
if (novyna.lenght) {в процессе экспериментов было установлено, что если написать в условии вообще какую-либо фигню, типа if(novyna.lenght=55), то новости выводятся как ни в чем не бывало
class News extends React.Component {const News = ({ news }) =>
<div className="news">
{Array.isArray(news) && news.length
? news.map(n => (
<div key={n.id}>
<p className="news__author">{n.author}:</p>
<p className="news__text">{n.text}</p>
<hr/>
</div>
))
: <p>Нет</p>}
<strong>Всего новостей: {news.length}</strong>
</div>;
isBarMenuClicked: false, // эту переменную нужно передать
$emit('click'), подписывайтесь на событие в родительском компоненте, переключайте там значение переменной, отвечающей за открытость меню и передавайте её в меню как параметр.
return?const events = [];
collectEvents:
for(let z = 0; z < arrOfEvents.length; z++){return memo заменяете наevents.push(memo);
continue collectEvents;return events;.
.one path {
fill: #909090;
}
.one.active path {
fill: #f00;
}const itemSelector = '.one';
const activeClass = 'active';document.addEventListener('click', ({ target: t }) =>
(t = t.closest(itemSelector)) && t.classList.toggle(activeClass)
);
// или
document.querySelectorAll(itemSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => e.currentTarget.classList.toggle(activeClass));
state: {
date: null,
interval: null,
},
mutations: {
update(state) {
state.date = new Date();
},
start(state) {
if (!state.interval) {
state.interval = setInterval(this.commit, 1000, 'update');
}
},
stop(state) {
if (state.interval) {
clearInterval(state.interval);
state.interval = null;
}
},
},computed: {
timerActive() {
return !!this.$store.state.interval;
},
timeStr() {
const { date } = this.$store.state;
return date instanceof Date
? [ 'getHours', 'getMinutes', 'getSeconds' ]
.map(n => `${date[n]()}`.padStart(2, 0))
.join(':')
: 'ВРЕМЕНИ НЕТ';
},
},
created() {
this.$store.commit('start');
},<button @click="$store.commit('start')" :disabled="timerActive">start</button>
<button @click="$store.commit('stop')" :disabled="!timerActive">stop</button>
<div>{{ timeStr }}</div>
v-on="условие ? { событие: обработчик } : {}"v-on="{ событие: условие ? обработчик : null }"
const result = arrs.reduce(
(acc, arr) => (arr.forEach((n, i) => acc[i].push(...n.slice(acc[i].length))), acc),
Array.from({ length: Math.max(...arrs.map(arr => arr.length)) }, () => [])
);const result = arrs.reduce((acc, arr) => (
arr.forEach((n, i) => (
acc[i] = acc[i] || [],
n.forEach((m, j) => acc[i][j] = acc[i][j] || m)
)),
acc
), []);
хочу, чтобы модальное окно отображалось столько раз, сколько событий в дне, и каждый раз с подробной информацией о новом событии
computed: {
detailInformationOfEvent() {
return this.detailInformationOfEvents[0];
},
...this.detailInformationOfEvents.push({
...
});v-show="detailInformationOfEvent"detailInformationOfEvents.shift()
Метод Performance.now() возращает временную метку DOMHighResTimeStamp, измеряемую в миллисекундах