博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React之函数式组件和高阶组件(装饰器、带参装饰器)
阅读量:4131 次
发布时间:2019-05-25

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

import React from 'react';  // 此句不能少import ReactDom from 'react-dom';const Wrapper = props => 
App component{props.count}
// stateless component无状态组件,现在喜欢被称为函数式组件,现在这种定义的组件可以写state了,如state hookfunction wrapper(Comp, props){ // 这个不能叫普通函数,这是个组件 return
App component{props.count}

}// 科里化function wrapper(Comp){ return function (props){ // 返回B组件 return
B component{props.count}

}}// 改为箭头函数,但是注意把第二个箭头后当一个整体看const wrapper = Comp => props =>
{/* 传一个组件返回一个新的组件 */} B component{props.count}

// 装饰器太新了,一定要用babel,但是现在的装饰器只能装饰类,不能装饰函数@wrapper // A = wrapper(A),注意返回的A已经不是原来的A了// function A (props){return
A component
} // 会报错,装饰器只能装饰类,不能装饰函数class A extends React.Component{ render(){ return
A component
}}// const B = wraper(A)ReactDom.render( //
, // 此处要封口 //
, , document.getElementById('root'))

将上述的代码改为带参装饰器:

import React from 'react';  // 此句不能少import ReactDom from 'react-dom';// 改为带参装饰器// function wrapper(vid){//     return function (Comp){//         return props => {  // 返回新的组件//             return 
// 金州拉文{props.name}//

//
//
// }// }// } let obj = {a: Green, b: KD }const wrapper = vid => Comp => props =>
{/* 传一个组件返回一个新的组件 */} 金州拉文{props.name}

{/*
*/}
{/* 相当于把对象解构成k、v对,还可以混着写 */}
@wrapper('test') // 改为带参装饰器; A = wrapper('test')(A)class A extends React.Component{ render(){ return
{this.props.name}号称金州拉文 {this.props.test} {/* 拿到的结果是Klay */}

{this.props.a}
{/* 拿到的结果是Green */} {this.props.b} {/* 拿到的结果是KD */}
}}ReactDom.render( , // 注意此处的A是装饰器返回的A,已经不是原来的A了 document.getElementById('root'))

 

 

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

你可能感兴趣的文章
实例区别BeanFactory和FactoryBean
查看>>
Spring后置处理器BeanPostProcessor的应用
查看>>
Spring框架的ImportSelector到底可以干嘛
查看>>
Mysql中下划线问题
查看>>
微信小程序中使用npm过程中提示:npm WARN saveError ENOENT: no such file or directory
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
idea的安装以及简单使用
查看>>
Windows mysql 安装
查看>>
python循环语句与C语言的区别
查看>>
Vue项目中使用img图片和background背景图的使用方法
查看>>
vue 项目中图片选择路径位置static 或 assets区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>
element-ui全局自定义主题
查看>>
facebook库runtime.js
查看>>
vue2.* 中 使用socket.io
查看>>
openlayers安装引用
查看>>
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>
初始化VUE项目报错
查看>>