博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React入门0x016: 访问Dom
阅读量:6000 次
发布时间:2019-06-20

本文共 1323 字,大约阅读时间需要 4 分钟。

0x000 概述

不到必要不要在React中访问Dom,尝试使用React的思想去解决问题。当然,必要的时候还是可以的,比如某些依赖Dom的组件

0x001 时机

React中,并不是任何时候都可以访问Dom的,需要讲究时机。因为React中的组件存在生命周期,必须要在Dom 挂载之后的生命周期才能访问到Dom,也就是componetnDidMount之后

  • 栗子:

    class App extends React.Component {    constructor() {        super()        console.log('constructor', document.getElementById('cool'))    }    componentDidMount() {        console.log('componentDidMount', document.getElementById('cool'))    }    render() {        return 
    Dom
    }}
  • 输出:

    clipboard.png

0x002 访问方式

  • 传统方式
    传统方式就是上面栗子中那般,直接在componentDidMount之后使用传统方式访问
  • refs

    ref有两种方式

    • ref属性绑定变量,这种方式需要先调用React.createRef创建一个ref,然后在componentDidMount之后的生命周期中使用this.myRef.current来访问。

      class App extends React.Component {    constructor() {        super()        this.myRef = React.createRef();    }    componentDidMount() {        const node = this.myRef.current;        console.log('componentDidMount',node)    }    render() {        return 
      Dom
      }}

      效果

      clipboard.png

    • 绑定函数,更简约一点,可以直接使用myRef访问

      class App extends React.Component {    constructor() {        super()    }    componentDidMount() {        console.log('componentDidMount',this.myRef)    }    render() {        return 
      this.myRef=e}> Dom
      }}

      效果

      clipboard.png

0x003 总结

不到必要不要在React中访问Dom,尝试使用React的思想去解决问题。

转载地址:http://wqzmx.baihongyu.com/

你可能感兴趣的文章
GPU FFT
查看>>
对象结构设计模式(2) - 组合模式(Composite), 装饰模式(Decorator)
查看>>
国内 Maven 镜像地址
查看>>
tomcat在conf/Catalina/localhost目录下配置项目路径
查看>>
JavaScript 实现小游戏power2
查看>>
在高并发的情况下,Node.js怎么生成像陌陌里面每个用户都有的 数字账号 呢,如何才会不重复呢?...
查看>>
mysql远程登录设置
查看>>
免费而稳定的企业/个人域名邮
查看>>
树莓派上自动下载py3.5安装shell脚本
查看>>
py正则分析日志 自己用的
查看>>
网站安装打包 软件环境检测与安装[二] 上
查看>>
Qt 有多少人折腾-qt for s60终于安装成功
查看>>
GO 相关资料文档
查看>>
Linux下编译安装PCRE库
查看>>
MAC 中Parallels Desktop 安装Linux
查看>>
jQuery教程:教你打造20个超级酷的视觉效果
查看>>
element ui用户头像上传
查看>>
看 37signals 如何招聘 UI 设计师
查看>>
组合问题, 给定字符集,输出特定长度的字符组合。
查看>>
判断输入是否是二元查找树
查看>>