最近在学习 react hook 经常看到这样的写法:
import { getname } from "...";
my_component = (props) => {
const [name, setName] = useState("yazoox");
clickme = () => {
const newname = getname();
setName(newname);
}
useEffect(() => {
// call API getname,每次调用,都会随机拿一个名字
const newname = getname();
setName(newname);
}, [name]);
return (
<div>{name}</div>
<div>
<button onclick={clickme()} >click me</button>
</div>
);
}
useEffect 是在 component mount 后调用的(相当于 componentDidMount/DidUpdate)。
两个问题:
注:这种情况,我能想到的实际场景,就是打开网站,界面先画出来,但是图片还在后台加载。等图片加载完成了,继续画。
还是说,react hook 设计上,保证了在 useEffect 内部,setXXX 即使是 dependency,也不会重复触发?
谢谢!
p.s. 有没有 react 可以 online 编辑 /实践的网站? codepen.io 需要 VIP 才可以......
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.