概述
ref是reference的缩写,译为引用。直接看demo,还是老样子创建一个RefDemo.js
import React from 'react';
export default function RefDemo() {
return (
<div>
refDemo
</div>
);
}
,并在App.js中将其引入:
...
import RefDemo from "./components/RefDemo";
function App() {
...
return (
<div>
...
<RefDemo />
</div>
);
}
export default App;
现在有一个需求,RefDemo里一个input需要页面刷新时聚焦(传统做法是用inputDom.focus()):
import React from 'react';
function Input() {
return <input />
}
export default function RefDemo() {
return (
<div>
<Input />
</div>
);
}
现在用上useRef就可以这么写:
import React, { useEffect, useRef } from 'react';
function Input() {
const inputRef = useRef();
useEffect(() => {
inputRef.current.focus();
}, []);
return <input ref={inputRef}/>
}
export default function RefDemo() {
return (
<div>
<Input />
</div>
);
}
为了更统一,需要在组件的父级写,就可以改成这样,还可以传递value:
import React, { useEffect, useRef } from 'react';
const Input = React.forwardRef((props, ref) => {
return <input ref={ref}/>
})
export default function RefDemo() {
const aref = useRef();
useEffect(() => {
aref.current.focus();
// deliver value
aref.current.value = "hello, world";
}, []);
return (
<div>
<Input ref={aref}/>
</div>
);
}
代码参考
最后
以上就是时尚微笑为你收集整理的React hooks学习笔记(6)——useRef的全部内容,希望文章能够帮你解决React hooks学习笔记(6)——useRef所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复