经过昨天对Hook有个初步的认识之後,下方介绍几个Hook的范例。
下面用计时器作介绍
import React, { useState } from 'react';
function Example() {
// 宣告一个新的 state 变数,名字叫做「count」,类似於class中的
// this.state = {
count: 0
};
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
useState:回传目前state数值(count)和一个更新state数值的function(setCount)。
state里面可以放字串、物件、阵列,且state可以拆成多个useState(),或是全部塞在同一个useState()里面。
function ExampleWithManyStates() {
// 宣告多个 state 变数!
const [age, setAge] = useState(42);
const [fruit, setFruit] = useState('banana');
const [todos, setTodos] = useState([{ text: 'Learn Hooks' }]);
// ...
}
Effect(副作用)从字面上可以解释为除了主要作用之外,所产生出的额外作用。用JS的表达式作例子的话,会变动原本的变数的值的话,便称作带副作用的表达式。如counter++、x += 3等。
Hook中useEffect便是带有副作用的function,会依据每次变数的变化,刷新useEffect里面的function,下面的计时器例子中便是在每次点击按钮时除了刷新点击次数外,浏览器的titlt也会不断刷新。
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
// 每次点击时更新文件标题
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
<<: DAY 30『 从相簿选取照片( 有裁剪照片功能 ) 』ImagePicker - Part2
记得第一份工作时候,有个同事一直在那边嚷嚷静态方法比非静态效率高,偶而喊喊抽象化思考很重要,我当时心...
今天将探讨欧盟资料保护法(GDPR)的裁罚案为例,依据罚金高至低了解前几名的判例,从中获取learn...
教材网址 https://coding104.blogspot.com/2021/06/java-o...
Abstract 大家好,我是游戏王怪兽之决斗小编威斯~~丁,想必大家都知道游戏王的贝卡斯的千年眼可...
CollectionView:Storyboard、Xib + Collection View + ...