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

微信小程序开发和网站开发的区别网页版qq邮箱怎么发文件

微信小程序开发和网站开发的区别,网页版qq邮箱怎么发文件,网上书城网站建设目的,电气网站设计相关文章: React Context的使用方法 react Provider Consumer 使用方法 1. 是什么 我们将组件间通信可以拆分为两个词: 组件通信 组件是vue中最强大的功能之一,同样组件化是React的核心思想 相比vue,React的组件更加灵活和多样…

相关文章:
React Context的使用方法
react Provider Consumer 使用方法

1. 是什么

我们将组件间通信可以拆分为两个词:

  • 组件
  • 通信

组件是vue中最强大的功能之一,同样组件化是React的核心思想
相比vue,React的组件更加灵活和多样,按照不同的方式可以分成很多类型的组件
而通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的,广义上,任何信息的交通都是通信
组件间通信即指组件通过某种方式来传递信息以达到某个目的

2. 如何通信

组件传递的方式有很多种,根据传送者和接收者可以分为如下:

  • 父组件向子组件传递
  • 子组件向父组件传递
  • 兄弟组件之间的通信
  • 父组件向后代组件传递
  • 非关系组件传递

2.1 父组件向子组件传递

由于React的数据流动为单向的,父组件向子组件传递是最常见的方式
父组件在调用子组件的时候,只需要在子组件标签内传递参数,子组件通过props属性就能接收父组件传递过来的参数

function EmailInput(props) {return (<label>Email: <input value={props.email} /></label> );}
const element = <EmailInput email="123@qq.com" />;

2.2 子组件向父组件传递的

子组件向父组件通信的基本思路是,父组件向子组件传一个函数,然后通过这个函数的回调,拿到子组件传过来的值
父组件对应代码如下:

//父组件代码
class Parents extends Component {constructor() {super();this.state = { price: 0 };}getPrice(e) {this.setState({price: e }); }render() {return ( <div><div>price: {this.state.price}</div> {/*向子组件传入一个函数 */}<Child getPrice={this.getPrice.bind(this)} /></div> ); } 
}

子组件对应代码如下:

//子组件代码
class Child extends Component {clickGoods(e) {// 在此函数中传入值this.props.getPrice(e); }render() {return (<div><button onClick={this.clickGoods.bind(this, 100)}>goods1</button> <button onClick={this.clickGoods.bind(this, 1000)}>goods2</button></div> ); }}

2.3 兄弟组件之间的通信

如果是兄弟组件之间的传递,则父组件作为中间层来实现数据的互通,通过使用父组件传递

class Parent extends React.Component {constructor(props) {super(props)this.state = {count: 0} }setCount = () => {this.setState({count: this.state.count + 1})}render() {return ( <div> <SiblingA count={this.state.count}/><SiblingB onClick={this.setCount}/></div> ); } 
}

2.4 父组件向后代组件传递

父组件向后代组件传递数据是一件最普通的事情,就像全局数据一样
使用context提供了组件之间通讯的一种方式,可以共享数据,其他数据都能读取对应的数据通过使用React.createContext创建一个context

const PriceContext =React.createContext('price')

context创建成功后,其下存在Provider组件用于创建数据源,Consumer组件用于接收数据,使用实例如下:
Provider组件通过value属性用于给后代组件传递数据:

<PriceContext.Provider value={100}>
</PriceContext.Provider>

如果想要获取Provider传递的数据,可以通过Consumer组件或者或者使用contextType属性接收,对应分别如下

class MyClass extends React.Component {static contextType = PriceContext;render() {let price = this.context;/* 基于这个值进行渲染工作*/} 
}

Consumer 组件

<PriceContext.Consumer> { /*这里是一个函数 */ }
{price => <div>price {price}</div> }</PriceContext.Consumer>

2.5 非关系组件传递

如果组件之间关系类型比较复杂的情况,建议将数据进行一个全局资源管理,从而实现通信,例如redux。关于redux的使用后续再详细介绍

3. 总结

由于React是单向数据流,主要思想是组件不会改变接收的数据,只会监听数据的变化,当数据发生变化时它们会使用接收到的新值,而不是去修改已有的值因此,可以看到通信过程中,数据的存储位置都是存放在上级位置中

http://www.yayakq.cn/news/876498/

相关文章:

  • 网站建设背景需要写些什么软件现在网站建设怎么收费
  • 缙云县建设局网站本科毕设做网站多少钱
  • 计算机网站建设与开发深圳建筑设计公司排行榜
  • 弹幕网站用什么做建设银行官方网站-云服务
  • 中国网站优化哪家好凡科网微信小程序
  • 学校asp网站网站开启伪静态
  • 福州网站建设哪家专业外贸互联网推广
  • 网站建设都用什么软件深圳网站建设 利科技
  • 网站建设竞价托管服务2核512内存装wordpress
  • 深圳网站开发外包电子产品网站模板
  • 求个网站你明白的国外域名拍卖网站
  • 杭州做网站的公司有哪些用公司注册公司需要什么资料
  • 微网站建设渠道集团公司管理系统
  • 如何建立网站销售平台如何把刚做的网站被百度抓取到
  • cn域名知名网站养生网站源码
  • 蓟县网站制作wordpress文章所有图片
  • ssr网站开发哈尔滨建站模板厂家
  • 网站主关键词如何优化网站建设分金手指排名十二
  • 坪山网站建设行业现状本地的天津网站建设
  • 有网站模板怎么做网站建筑网官网登录入口
  • 致设计网站官网网站服务器干啥
  • 婚介网站建设外贸网站 设计
  • 网站上的弹框如何做网页网页布局照着别的网站做会侵权吗
  • 网站浏览图片怎么做的优设计网站建设
  • 青海网站建设企业一个空间可以建多个网站
  • 网页设计电商网站求网站
  • 菲律宾网站网站建设南通电子商务网站建设
  • 北京高端网站建设公司浩森宇特网站建设的作用
  • 企业做外贸网站常用术语扬州个人做网站
  • 在哪个网站做旅游攻略好网页设计公司深圳