gpt4 book ai didi

javascript - 防暴 js this.update 奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 15:52:06 27 4
gpt4 key购买 nike

我有一个简单的代码

<test>
<ul>
<li each={ books }> { title }</li>
</ul>

<button type="button" name="button" onclick={ loadBooks }>Load books</button>

<script>
'use strict';

this.books = [];
let offset = 0;

this.on('mount', () => {
console.log('mounted');
});

this.on('update', () => {
console.log('updated');
});

loadBooks () {
fetch('/api/books?limit=10&offset='+offset)
.then(response => response.json())
.then(books => {
offset+=10;
this.books = books;
// this.update();
})
.catch(err => console.log(err));
}
</script>

在我的 app.js 中,我只需要 riot、test.tag 并执行 riot.mount('#root', 'test');这是初始屏幕,为什么在安装之前触发更新? enter image description here当我第一次点击时,它会记录更新已触发但 View 不会重新呈现 enter image description here第二次点击后,触发事件更新并重新呈现 View enter image description here enter image description here

如果我在 promise 中取消注释 this.update();,事件更新将触发两次

更新:如果删除 this.books = books 并写入 this.update({books}); 事件更新将触发两次,并且渲染将工作,但为什么2次???

最佳答案

1) update before mount:这在@next/3.0.0 中已修复,按照:https://github.com/riot/riot/issues/1661

2) 为什么 2x update:可能,一个来自标签,一个关于子标签。这是在这里问的:https://muut.com/i/riot-js/using:why-update-event-is-trigg

关于javascript - 防暴 js this.update 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com