- function App() {
-
- const [name, setName] = useState('')
-
- const getName = () => {
- console.log('getName-----')
- if (name === '') {
- return "张三"
- } else {
- return name
- }
- }
-
- return (
- <div className="App">
- <p>名称:p>
- <p>{getName()}p>
- <p onClick={() => setName('哈哈')}>
- <button>改变Namebutton>
- p>
- div>
- );
- }
-
-
-
{name}
- <p onClick={() => setName('哈哈')}>
- <button>改变Namebutton>
- p>
-
getName()会在每次组件渲染的时候执行dom,尽管name没有变化,我们需要让name变化的时候才渲染dom,否则保持原有的数据,这时候就用到了useMemo。
- function App() {
-
- const [name, setName] = useState('')
-
- const getName = useMemo(() => {
- console.log('useMemo-----')
- if (name === '') {
- return "张三"
- } else {
- return name
- }
- },[name])
-
- return (
- <div className="App">
- <p>名称:p>
- <p>{getName}p>
- <p onClick={() => setName('哈哈')}>
- <button>改变Namebutton>
- p>
- div>
- );
- }
参考示例:https://www.e-learn.cn/topic/2694248