有大用途的useRef

简介: 有大用途的useRef

使用useRef获取DOM元素

使用useRef获取DOM元素是目前useRef最常用的用法。

基本用法

function App() {
    const box = useRef();
    return (
        <div ref={box}>
            <button onClick={() => console.log(box)}>点击获取div</button>
        </div>
    )
}
复制代码

使用useRef跨组件周期保存数据

即使组件重新渲染,保存的数据仍然还在,保存的数据被更改不会触发组件重新渲染。

基本用法

/**
 * @description: 组件挂载完成之后开启一个循环定时器,使用useRef的保存数据功能
 *               不会随着组件的更新而丢失数据
 * @param {*}
 * @return {*}
 */
function App() {
    const [count,setCount] = useState(0)
    const timeId = useRef;
    useEffect(() => {
        timeId.current = setInterval(() => {
            setCount(count => count + 1);
        },1000)
    }, []);
    const handleSetInterval = () => {
        clearInterval(timeId.current)
    }
    return (
        <div>
            <h1>当前求和为{count}</h1>
            <button onClick={handleSetInterval}>点我清除定时器</button>
        </div>
    )
}
复制代码

这里我们需要注意的是数据并不是直接保存在useRef返回的这个对象中的,而是保存在这个对象的current属性上的。

相关文章
|
7月前
|
安全
Vuex惊天漏洞!!!破解Vuex状态管理漏洞:让getters变量具有set赋值的能力,支持双向绑定
Vuex惊天漏洞!!!破解Vuex状态管理漏洞:让getters变量具有set赋值的能力,支持双向绑定
|
7月前
|
前端开发 JavaScript
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下(二)
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下
|
7月前
|
存储 JavaScript
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下(三)
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下
|
7月前
|
存储 JavaScript 容器
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下(一)
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下
面试官:请你说一说vuex的五个属性,分别是什么,区别和用途说一下(一)
|
7月前
|
前端开发 开发者
第二十三章 案例TodoList之数据更新
第二十三章 案例TodoList之数据更新
第二十三章 案例TodoList之数据更新
|
7月前
|
存储 缓存 JavaScript
第十三章:vuex状态(数据)管理
第十三章:vuex状态(数据)管理
73 0
|
7月前
|
前端开发 JavaScript
第十二章 引出React中的生命周期
第十二章 引出React中的生命周期
|
7月前
|
前端开发 数据挖掘
第二十章 案例TodoList之动态数据
第二十章 案例TodoList之动态数据
一文解释mapState的来龙去脉
一文解释mapState的来龙去脉
|
JavaScript 前端开发
带你读《现代Javascript高级教程》三十、MutationObserver:监测DOM变化的强大工具(2)
带你读《现代Javascript高级教程》三十、MutationObserver:监测DOM变化的强大工具(2)

热门文章

最新文章