如果有错误,欢迎留言指教~ Q_Q
如果要 render 画面,就要设定 useState
,而不是一般的变数
因为当 state 改变时, component 就会被重新 render
重新 render 後, state 会被保留在 component 里面,不会消失
const [state, setState] = useState(initialState);
useState
会回传一组 array: [目前的 state, 更新 state 的 function]
useState
就类似在 class 中this.state
和this.setState
的用法。
但在 function component 中,我们没有this
,所以我们没办法指定或读取this.state
。
我们最好~~~ 在一开始先给个初始值 -> 这样才一看就知道型态了呀!
如果是 number 就给他 number,如果是 Boolean 就给 ture 或 false
当然他也可以是一组 object{} 或是 array[] -> 你可以把相关的资料设定在一起
const [age, setAge] = useState(18);
const [isCheckOut, setIsCheckOut] = useState(false);
const [drinkOrder, setDrinkOrder] = useState({
name: '',
buyer: '',
options: '',
})
当拆很多个 state 在元件里,每一个 state 更新就 render,就很容易被过度重新渲染
// -> 不好
const [isLoggedIn,setIsLoggedIn] = useState()
const [currentUser,setCurrentUser] = useState()
const [authToken,setAuthToken] = useState()
// -> 较佳
const [authState,setAuthState] = useState({
isLoggedIn: true,
currentUser: 'sharon',
authToken: 'xxx',
})
但不要直接将 props 进来的值,当作初始值 >>>>
命名规范: [sharon, setSharon] = useState(initialSharon)
ref:
<<: [想试试看JavaScript ] 阵列一些操作阵列好用的方法 (二)
>>: DAY24 MongoDB Atlas (免费)云端托管服务
0x1 前言 目前还没有画面可以看或操作,所以单就资料流的部分先写进资料库, 而建立订单目前也是先塞...
在疫情爆发之前,一切的一切看似都非常的正常,但是在爆发之後,所有的一切都被疫情给打乱了,并且所有的秩...
前面我们已经学会 Ktor Authentication 机制,而且也整合了 Database 及 ...
我们在Day08有介绍过model的功用,在你的views里使用到资料库里的变数时,这些变数都是需要...
上一篇我分享了 ALPHA Camp 与 Google 的主管绩效评估问卷作为参考。一个有效的管理者...