react怎么销毁组件? - 网站

react怎么销毁组件?

分类:React入门教程_React框架基础教程 · 发布时间:2020-11-22 23:46 · 阅读:1272

最近突然来了兴致研究react,在研究react的JSX语法,组件时,觉得没有什么问题,都挺好理解的,但是看到生命周期这一部分时,发现官网给出的声明周期事件有一个怎么都不能主动触发到,后来在网上查了查,网上都只给出了声明周期的概念,没有人去真正测试过如何触发React组件的销毁。

于是只能自己动手,分析React对象和ReactDom对象,经过不停测试,终于让我发现主动销毁组件的方法了,如下:

ReactDOM.unmountComponentAtNode(document.getElementById("example"));

注:example是该实例的根节点。

下面是完整代码示例:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8"/>
    <title>Hello React</title>
    <script src="/react/system/lib/react/react.min.js"></script>
    <script src="/react/system/lib/react/react-dom.min.js"></script>
    <script src="/react/system/lib/react/browser.min.js"></script>
  </head>
  <body>
    <div id="example"></div>
    <!-- 脚本类型babel,声明代码里有jsx语法,交由浏览器的browser去解析 -->
    <script type="text/babel">
        var Button = React.createClass({
            getInitialState: function() {
                return {
                    data:'msg'
                };
            },
            setNewNumber: function() {
                this.setState({data: ''})
            },
            render: function () {
                return (
                    <div>
                        <button onClick = {this.setNewNumber}>INCREMENT</button>
                        <Content myNumber = {this.state.data} ref="content"></Content>
                    </div>
                );
            },
            componentWillUnmount:function() {
                console.log('111Component WILL UNMOUNT!')
            }
        });

        var Content = React.createClass({
          componentWillMount:function() {
              console.log('Component WILL MOUNT!')
          },
          componentDidMount:function() {
               console.log('Component DID MOUNT!')
          },
          componentWillReceiveProps:function(newProps) {
                console.log('Component WILL RECEIVE PROPS!')
          },
          shouldComponentUpdate:function(newProps, newState) {
                return true;
          },
          componentWillUpdate:function(nextProps, nextState) {
                console.log('Component WILL UPDATE!');
          },
          componentDidUpdate:function(prevProps, prevState) {
                console.log('Component DID UPDATE!')
          },
          componentWillUnmount:function() {
              console.log('Component WILL UNMOUNT!')
          },
         
            render: function () {
              return (
                <div>
                  <h3>{this.props.myNumber}</h3>
                </div>
              );
            }
        });
    var aa = ReactDOM.render(
        <div>
            <Button />
        </div>,
        document.getElementById('example')
    );

/**
** 在控制台执行下面语句即可看到组件销毁事件被触发了
**    ReactDOM.unmountComponentAtNode(document.getElementById("example"));
**/

    </script>
  </body>
</html>
标签:
react 销毁组件

相关文章

react中怎么使用sass?

方法:1、使用npm工具安装sass-loader和node-sass依赖;2、配置webpack.config.js文件;3、在需要的组件中引入scss,然后添加scss代码即可。

react怎么判断checkbox是否被选中

react判断checkbox是否被选中的方法:可以通过【if ($(&quot;#checkbox-id&quot;).get(0).checked) {}】方法来进行判断。还可以通过原生js方法来进行判断,如【ele.checked】。

react子组件如何向父组件传值?

在react中,首先通过父组件给子组件传递一个函数,然后子组件通过参数传到父组件,通过props来传递函数的引用,并通过回调的方式实现;其实就是子组件调用父组件的方法,把值以形参的方式传出来。

react组件什么时候会重新渲染?

每当组件状态改变时,React就会调用render函数进行重新渲染。更改状态意味着当调用setState函数时,React触发更新;这不仅意味着将调用组件的render函数,而且还意味着重新渲染其所有后续子组件,无论其prop是否已更改。

react组件生命周期有几个阶段?

React组件生命周期有三个阶段:加载、更新和卸载。加载阶段表示一个组件实例被创建并被插入到DOM中;更新阶段表示由状态或属性的改变导致组件的重新渲染;卸载阶段表示组件从DOM中移除。

返回分类 返回首页