react.js 高阶组件----很简单的实例理解高阶组件思想
Posted 学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react.js 高阶组件----很简单的实例理解高阶组件思想相关的知识,希望对你有一定的参考价值。
/* * 高阶组件其实是一个函数,传进去的一个组件,返回一个新组件 * 实现不同组件中的逻辑复用, * 将一些可以单独抽离的逻辑处理给要返回的新组件里面复用 * 然后将单独的组件,传递给新组件 * */ 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)=>{ 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"))
以上是关于react.js 高阶组件----很简单的实例理解高阶组件思想的主要内容,如果未能解决你的问题,请参考以下文章
React面向组件编程 - 基本理解和使用 - 组件三大核心属性state-props-refs - 事件处理 - 非受控组件 - 受控组件 - 高阶函数 - 函数柯里化