当前位置: 首页 > news >正文

建设网站需要什么设施广告制作公司简介模板

建设网站需要什么设施,广告制作公司简介模板,wordpress 点击量,政务服务网站建设整改报告组件通讯介绍 组件中的状态是私有的,组件的状态只能在组件内部使用,无法直接在组件外使用,但是我们在日常开发中,通常会把相似、功能完整的应用才分成组件(工厂模式)利于我们的开发,而不同组件直…

组件通讯介绍

组件中的状态是私有的,组件的状态只能在组件内部使用,无法直接在组件外使用,但是我们在日常开发中,通常会把相似、功能完整的应用才分成组件(工厂模式)利于我们的开发,而不同组件直接又需要传递数据,而这个过程就是组件通讯。

组件通讯-父子间、兄弟间传值props

props,学过vue的其实我们都很熟悉,都是父组件传递给子组件的一种方式。

props 是只读对象,只能读取属性,无法修改,属于单向数据流。

根本作用:接收(其他组件)传递给当前组件的数据

如何传递

// 传递数据:给组件标签添加属性 用{}内部传入数据,数据类型依据输入决定
<New userName='hyy' id={'1233414'} />

函数组件接受,参数props直接接受

// 接收数据(函数组件):
// props :{ userName='hyy' id={'1233414'} }
function getProps(props) {return (<div><div>{props.userName}</div><div>{props.id}</div></div>)
}

Class组件接受,this.props接受

// 接收数据(类组件):
// this.props :{ userName='hyy' id={'1233414'} }
class New extends Component {render() {return (<div><div>{this.props.userName}</div><div>{this.props.id}</div></div>) }
}
组件通讯-父传子 props 代码示例
// 父组件传值
class Parent extends React.Component {state = { userName: 'hyy' }render() {return (<div><Child userName={this.state.userName} /></div>)}
}
// 子组件获取 函数组件
function Child(props) {return <div>{props.userName}</div>
}
// 子组件获取 类组件
class Child extends React.Component {render(){return <div>{this.props.userName}</div>}
}
组件通讯-子传父 props 代码示例

跟vue很像,通过props传递回调函数给子组件,子组件调用函数传递参数给父组件

// 声明一个回调函数,传递给子组件
class Parent extends React.Component {getChildData = (data) => {console.log('子组件数据传递的数据', data)}render() {return (<div><Child getData={this.getChildData} /></div>)}
}
// 子组件调用函数,通过传递参数传递给父组件
class Child extends React.Component {state = { childData: '子传父 props' }handleClick = () => {this.props.getData(this.state.childData)}return (<button onClick={this.handleClick}>传递数据给父元素</button>)
}
组件通讯-兄弟组件 props 代码示例

状态提升:将共享状态提升到最近的公共父组件中,由公共父组件管理这个状态

核心内容:把共同的父组件当中eventBus的数据处理中心

import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import Bor1 from './bor1'
import Bor2 from './bor2'
// 父组件
class App extends Component {state = {borData: '',}render() {// 给兄弟1传递改变方法,给兄弟2传递被改变的值return (<div<Bor1 change={this.changebor2Data}>兄弟组件1</Bor1> <Bor2 borData={this.state.borData}>兄弟组件2</Bor2></div>)}// 兄弟1传递给兄弟2 borData的修改方法changebor2Data = (borData) => {this.setState({borData,})}
}
ReactDOM.render(<App />, document.getElementById('root'))
// 兄弟组件1
import React, { Component } from 'react'export default class Bor1 extends Component {render() {return (<div><button onClick={this.change}>改变兄弟2的值</button></div>)}change = () => {this.props.changebor2Data('兄弟2值改变了')}
}
// 兄弟组件2
import React, { Component } from 'react'export default class Bor2 extends Component {render() {return (<div>{this.props.borData}</div>)}
}

组件通讯 - 跨级组件 Context(不常用,但是是redux的基础)

context实现跨级组件通讯

步骤:1、在最高级组件中创建一个context对象 createContext

​ 2、用解构赋值 解构出Provider,Consumer

​ 3、利用Provider最外层应用,通过value=“data” ,提供共享的数据

data一般是个对象,传递state的值或者当前组件的方法

​ 4、利用Consumer组件去接受共享的数据

​ {data =>接受组件的render内容}

import { createContext } from 'react'
const { Provider, Consumer } = createContext()// 通过Provider组件包裹,我们需要向child组件传递data
<Provider value="data"><div><Child /> </div>
</Provider>// child组件中使用 Consumer组件接收要共享的数据
<Consumer>{data => <span>{data}</span>}
</Consumer>
http://www.yayakq.cn/news/665727/

相关文章:

  • 怎么优化网站关键词网站开发技术架构
  • 贵阳网站制作建设免费seo公司
  • 怎么做音乐网站去成都最新政策
  • 定远建设小学投诉网站附近的网站电脑培训班
  • 新图闻的互联网+产品及服务seo外包优化公司
  • 福州高端建站做谷歌网站使用什么统计代码
  • 怎么写公司网站的文案企业网站模板下载哪家口碑好
  • 南宁网站网站建设宁波房产网签查询
  • 网站建设与网页制作技术公司营销型网站开发
  • 青岛城市建设局网站100%上热门文案
  • 南宁seo网站推广服务城乡建设部网站自助商品房
  • 济南 营销型网站建设设计视频网站
  • 福州网站设计哪家比较好长宁区网站制作设计
  • 网站建设的现状分析展位搭建
  • 品牌建设年中国seo公司
  • 建设网站时以什么为导向什么叫网站集约化建设
  • 单位网站建设情况总结网站开发费用国家标准
  • 网站推广初期目标网站设置主网
  • 020网站设计如何给网站做提升
  • 全屏背景网站购物网站设计需要哪些模块
  • 上行10m企业光纤做网站网站页面怎么做
  • 哪个网站教人做美食设计师应该关注的网站
  • 中信建设网站安徽合肥建筑公司
  • 西北电力建设甘肃工程公司网站山东莱芜金点子信息港
  • 网站建设做网站需要多少钱?网站建设对企业的作用
  • 宁波外贸公司网站建设温州市建设小学网站首页
  • 网站全屏轮播怎么做html表单制作
  • 建站快车优势如何做优化网站排alexa优化
  • 购物网站开发教程中文版北京网站建设是什么意思
  • 淘宝网站模板是什么做的最近的新闻有哪些