react.js 高阶组件----很简单的实例理解高阶组件…
2018-06-24 00:22:40来源:未知 阅读 ()
调试代码之前,我设置了两个缓存
分别是username和content
在控制台console设置两个缓存代码
localStorage.setItem('username','老王')
localStorage.setItem('content','类容')
运行下面代码一定要先设置这两个缓存,因为我在高阶组件封装了公共方法,调用缓存到输入框的value里
,高阶组件返回的组件调用了这个方法
/* * 高阶组件其实是一个函数,传进去的一个组件,返回一个新组件 * 实现不同组件中的逻辑复用, * 将一些可以单独抽离的逻辑处理给要返回的新组件里面复用 * 然后将单独的组件,传递给新组件 * */ import React, {Component} from 'react' import ReactDOM from 'react-dom' //高阶组件定义,里面return 返回新组件 function local(Comp,key){ class Proxy extends Component{ //constructor构造函数 定义你的状态 constructor(){ super(); this.state={data:''} } //钩子函数,组件渲染之前 componentWillMount(){ //取缓存值 let data=localStorage.getItem(key); this.setState({data}) } handBlur=(event)=>{
//获取当前标签的value let data=event.target.value; localStorage.setItem(key,data); } render(){ //Comp是传入进来的组件 return( <Comp handBlur={this.handBlur} data={this.state.data}/> ) } } return Proxy } //定义你的单独组件 function Input(props) { return <input type="text" defaultValue={props.data} onBlur={props.handBlur}/> } function Textareas(props) { return <textarea defaultValue={props.data}></textarea> } function Div() { return <div>111</div> } //调用高阶函数,返回新的组件 let LocalInput=local(Input,'username') let LocalTextareas=local(Textareas,'content') let LocalDiv=local(Div) //要渲染的总组件 class From extends Component { render() { return ( <div> <form> 用户名 <LocalInput/> 类容 <LocalTextareas/> <LocalDiv></LocalDiv> </form> </div> ) } } ReactDOM.render(<From></From>,document.querySelector("#root"))
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:vue父组件中获取子组件中的数据
下一篇:vue获取DOM元素并设置属性
- vue mixins组件复用的方式 2019-09-23
- HBuilderX使用Vant组件库 2019-08-14
- 关于Vue父子组件传值(复杂数据类型的值)的细节点 2019-08-14
- vue之手把手教你写日历组件 2019-08-14
- 组件切换方式(Vue.js) 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash