react重要基础概念---05react与dom

  1. ReactDOM

要把 React 渲染的 Virtual DOM 渲染到浏览器的 DOM 当中,就要使用 render 方法了:

    ReactComponent render(
        ReactElement element,
        DOMElement container,
        [function callback]
    )
复制代码

该方法把元素挂载到 container 中,并且返回 element 的实例(即 refs 引用)。当然,如果 是无状态组件, render 会返回 null 。当组件装载完毕时, callback 就会被调用。

当组件在初次渲染之后再次更新时,React 不会把整个组件重新渲染一次,而会用它高效的 DOM diff 算法做局部的更新。这也是 React 最大的亮点之一!

  1. refs

refs 就是为此而生的,它是 React 组件中非常特殊的 prop,可以附加到任何一个组件上。从字 面意思来看, refs 即 reference,组件被调用时会新建一个该组件的实例,而 refs 就会指向这个实例。

对于 React 组件来说, refs 会指向一个组件类的实例,所以可以调用该类定义的任何方法。 如果需要访问该组件的真实 DOM,可以用 ReactDOM.findDOMNode 来找到 DOM 节点,但我们并 不推荐这样做。因为这在大部分情况下都打破了封装性,而且通常都能用更清晰的办法在 React 中构建代码。

  1. React 之外的 DOM 操作
  • 如果要调用 HTML5 Audio/Video 的 play 方法和 input 的 focus 方法, React 就无能为力了,这时只能使用相应的 DOM 方法来实现
  • React 提供了事件绑定的功能,但是仍然有一些特殊情况需要自行绑定事件,例如 Popup 等 组件,当点击组件其他区域时可以收缩此类组件。这就要求我们对组件以外的区域(一般指 document 和 body )进行事件绑定
  • React 正在自己构建一个 DOM 排列模型,来努力避免这些 React 之外的 DOM 操作。我们相信在 不久的将来,React 的使用者就可以完全抛弃掉 jQuery 等 DOM 操作库。

转载于:https://juejin.im/post/5c18aa005188257c1260f29c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值