1.基本使用

  1. import React, {useRef} from 'react'
  2. const UseRefFunc=()=>{
  3. const inputRef=useRef(null)
  4. const handle=()=>{
  5. console.log(inputRef.current.value);
  6. }
  7. return (
  8. <div>
  9. <input type="text" ref={inputRef}/>
  10. <button onClick={handle}>提交</button>
  11. </div>
  12. )
  13. }
  14. export default UseRefFunc

useRef可以保存变量,dom以及事件 useRef(和React.creatRef()生成的有点类似)

useRef 返回一个可变的ref对象——-书写更加简洁

返回的ref对象在组件的整个生命周期内保持不变

ref对象的.current属性设置为相应的DOM节点————-和之前的ref一样的

当ref对象内容发生变化时,useRef并不会通知你————dom对象发生变化后,并不会实时更新ref

变更.current属性不会引发组件重新渲染————修改current属性,dom不会更新任何

2.保存数据

保存上一次的值

  1. import React,{useRef,useState,useEffect,Fragment }from 'react'
  2. // or
  3. import { Button } from 'react-bootstrap';
  4. import './App.css';
  5. function App() {
  6. const [count, setcount] = useState(0)
  7. const ref = useRef(count)
  8. //保存上一次的值
  9. useEffect(() => {
  10. ref.current=count
  11. }, [count])
  12. return (
  13. <div className="App">
  14. {
  15. <Fragment>
  16. <h1>上一次的值:{ref.current}</h1>
  17. <h1>这一次的值:{count}</h1>
  18. <Button onClick={e=>setcount(count+10)} variant="primary">加10</Button>
  19. </Fragment>
  20. }
  21. </div>
  22. );
  23. }
  24. export default App;

3.使用react-bootstreap

安装 yarn add react-bootstrap bootstrap

使用

  1. //在index.html文件中引入css文件
  2. <!-- Latest compiled and minified CSS -->
  3. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css">
  4. <!-- Optional theme -->
  5. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap-theme.min.css">
  1. 在组件中
  2. import { Button } from 'react-bootstrap';