zoukankan      html  css  js  c++  java
  • react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来

    先创建三个组件A、B、C

    A.js

     1 import React, { Component } from 'react'
     2 
     3 class A extends Component {
     4     render () {
     5         return (
     6             <div>
     7             A组件
     8             </div>
     9     )
    10     }
    11 }
    12 
    13 export default  A

    B.js

    import React, { Component } from 'react'
    
    class B extends Component {
        render () {
            return (
                <div>
                B组件
                </div>
        )
        }
    }
    
    export default  B

    C.js

    import React, { Component } from 'react'
    
    class C extends Component {
        render () {
            return (
                <div>
                C组件
                </div>
        )
        }
    }
    
    export default  C

    然后在app.js中引入

    import React, { Component } from 'react';
    import A from './components/A'
    import C from './components/C'
    import B from './components/B'
    
    class App extends Component {
        render() {
            return (
                <div>
                    <A />
                    <B />
                    <C />
                </div>
            );
        }
    }
    
    export default App;

    认定A组件为相同部分,改写A组件

    import React, { Component } from 'react'
    
    function A (WrappedComponent) {
        return class A extends Component
        {
            render () {
                return (
                    <div>
                        <div>组件名称</div>
                        <div>
                            <WrappedComponent></WrappedComponent>
                        </div>
                    </div>
                )
            }
        }
    }
    
    export default A

    然后在B、C组件里面引用,改写B、C组件

    import React, { Component } from 'react'
    import A from './A'
    
    class B extends Component {
        render () {
            return (
                <div>
                B组件
                </div>
        )
        }
    }
    
    export default  A( B )
    import React, { Component } from 'react'
    import A from './A'
    
    class C extends Component {
        render () {
            return (
                <div>
                C组件
                </div>
        )
        }
    }
    
    export default  A( C )
  • 相关阅读:
    Web框架高级功能之模板、拦截器、Json、打包
    前端技术发展史、Nodejs语法
    子集树与排列树
    Web开发---路由实现
    JS, Jquery进行前台翻页
    Jquery将Ajax返回的Response添加到table中
    显示字符太长??来隐藏
    关于code 上server的证书的问题
    关于Ajax call get and post method, 和前端解决跨域
    2017-05-03与03May2017之间的转化
  • 原文地址:https://www.cnblogs.com/dropInInt/p/12012439.html
Copyright © 2011-2022 走看看