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

网站做了301怎么查看跳转前网站教育培训机构推荐

网站做了301怎么查看跳转前网站,教育培训机构推荐,唐卡装饰集团 一站式超级体验店,wordpress注册页面的标志本文作者:开课吧木木图文编辑:开三金上一期讲了react基本概念、jsx语法and脚手架。需要复习的小伙伴,点击下方的传送门☟react基本概念、jsx语法and脚手架今天木木来给大家讲一下:react组件的状态和通信组件之状态与通信在React.j…

4a7575c3593d836c2052b68e3cbebaf9.gif

16b5d231bec7be7206a9fc48d72d722c.png

本文作者:开课吧木木
图文编辑:开三金

上一期讲了react基本概念、jsx语法and脚手架。

需要复习的小伙伴,点击下方的传送门☟

react基本概念、jsx语法and脚手架

今天木木来给大家讲一下:react组件的状态和通信

482489b9143feb90b98e2c1745c4d2cc.png

组件之状态与通信

在React.js中,定义一个组件的最简单的方式就是 函数

函数式组件:

b564624ef6b3bd963d9f6ead974b1c9c.png

// 函数的名称就是组件的名称,必须是首字母大写

// 函数的返回值就是组件要渲染的内容

类组件:

b04f7914a6305537cfbeeea71b152523.png3701ef84e140d22d434fb0f9cc0dba21.png

数据的传入和接收

组件复用 - 数据传入:

6d8cc51bdace12314657fbb6d26e56b8.png

接收参数 -props:

函数式组件:通过函数的第一个参数来接收;

类式组件:通过类的 props 属性接收;

无论是函数式组件还是类式组件,都会把传入的参数封装成一个对象。

ba8f450ad7610cd75529d75c1113e6a3.png04970762e2d651d6fb7a9bec31426406.png

通过参数动态渲染组件结构:

5411d08b7cfe4a8fe8115f49cb66c743.png6e9db8be2e87845422405c1dd9aaef05.png

关于子组件

子组件提取:

组件与类一样,是一个不断提取的过程。

当我们发现某个部分可复用或者结构复杂的时候,我们可以对它再次进行提取:

fa110ffe9e453ccf08ae26d0b90594d8.png

组件状态:

组件状态是什么?

状态被用来存储组件在某段时间内状态改变的信息。

用户事件或系统事件会导致一些经典的状态改变。(比如:对用户输入的回应、服务器的请求、生命周期函数)

组件 state 工作是这样的:

先给组件设置一个默认状态,再获取当前状态,最后更新这个状态。

修改 state 的正确姿势:

不能直接修改state在React中,直接修改state并不会触发render函数,所以下面的写法是错误的。

3f0ddf19f01225fb8d62c87c52275073.png

setState方法由父类React.Component提供,当该方法被调用时,组件的state会被更新。

同时会被重新调用组件的render方法对组件进行渲染。

组件构造函数是唯一可以对 state 直接赋值(初始化)的位置

绑定事件:

React.js的事件绑定需要注意:

▶事件名称是驼峰命名的

▶事件绑定函数的this指向

▶通过bind改变this指向,为了能够在方法中调用对象的属性和其他方法,  我们需要把this指向组件

▶通过箭头函数处理

42a78040a575a87bb9c65c35ba43581b.png

如上代码: 

事件绑定函数的第一个参数是事件对象 因为this指向了组件对象,那么获取当前事件触发元素,可以通过e.target来获取。

获取原生DOM对象:

有的时候我们也是需要操作原生DOM对象的,除了可以通过事件源来获取,还可以通过ref的方式来获取:

2ba5abd97ffed4da2589d7b9eab23171.pngb49e4f991ad77b76405ef0627f96d164.png

事件的更新

更新异步:

出于性能考虑,setState方法的修改并不是立即生效的

b4c73df5a1586e0909ba3b10c13d7068.png

更新合并 React会把多个setState合并成一个调用:

b8502d64f132c343f92bdd307ac296eb.png

props与state的区别:

state的主要作用是用于 组件保存、控制、修改自己的可变状态。

在组件内部进行初始化,也可以在组件内部进行修改,但是组件外部不能修改组件的state

props的主要作用是让使用该组件的父组件可以传入参数来配置该组件,它是外部传进来的配置参数,组件内部无法控制也无法修改。

state和props都可以决定组件的外观和显示状态。

通常,props作为不变数据或者初始化数据传递给组件,可变状态使用state

能使用props就不要使用state了。

57ffa3acd019287478caf3c0363f9dfc.png

组件的种类和通信方式

无状态组件:

没有状态的组件,我们成为 无状态组件。

因为状态会带来复杂性,所以,通常我们推荐使用无状态组件。

函数式组件没有state,所以通常我们编写使用函数式组件来编写无状态组件。

数据流:

在React.js中,数据是从 上自下流动(传递) 的。

也就是一个父组件可以把它的state/props通过props传递给它的 子组件 。

但是子组件不能修改props。

React.js是单向数据流。

如果子组件需要修改父组件状态(数据),是通过 回调函数 方式来完成的。

React组件通信方式汇总:

需要组件之前进行通信的几种情况:

●父组件向子组件通信

●子组件向父组件通信

●跨级组件通信

●没有嵌套关系组件之间的通信

父组件向子组件通信:

父组件通过向子组件传递props,子组件得到props后进行相应的处理

f90f21950700aa739e193c84aa4347c0.png

子组件向父组件通信:

3b31a376f919a4a088d3802a465aa18d.png

跨级组件通信:

用contextcontext是一个全局变量,像是一个大容器,在任何地方都可以访问到。

我们可以把要通信的信息放在context上,然后在其他组件中可以随意取到。

使用context也很简单,需满足:

1、上级组件要声明自己支持context,提供context中属性的PropTypes,并提供一个函数来返回相应的context对象

2、子组件要声明自己主要使用context,并提供其需要使用的context属性的PropTypes

3、父组件需提供一个getChildContext函数,以返回一个厨师的context对象如果组件中使用构造函数(constructor)。

还需要在构造函数中传入第二个参数context,并在super调用父类构造函数时传入context,否则会造成组建中无法使用context。

下面例子中的组件关系:ListItem是List的子组件,List是app的子组件:

9e21883bdf7470bfac638472ad2429e4.png

使用context也很简单,需满足:

没有嵌套关系的组件通信(兄弟组件)

实现这样一个功能: 

点击List2中的一个按钮,改变List1中的信息显示(List1和List2没有任何嵌套关系,App是他们的父组件)

首先需要项目中安装events包:

  npm install events --save

在src下新建一个util目录里面见一个events.js

3d1bb47e9a5c5f8d33eac6cd1810c036.png

list1.js▼

0b583ba8afd3b4024058ae424f239197.png

List2.js▼

a6a92f2550ab22fc7ff67686799cdc61.png

APP.js▼

aed57ae995da1cccda0da1553c229786.png

自定义事件是典型的发布订阅模式。

通过向事件对象上添加监听器和触发事件来实现组件之间的通信。

▼关注我▼

看下期“React的生命周期和路由

16b5d231bec7be7206a9fc48d72d722c.pngabe5df9775ebd1b8bcb114d05849bca0.pnge4d9442c8c0cee1b2b278a22ffbc1e58.png5bbafa9bc1c19b7c2c5d4ec5e8d82a98.pngeeb73af9bb478175e85c7e2e7021c0e9.png

你“在看”我吗?

35a2776f34d406079f31004d1ad2befe.png
http://www.lbrq.cn/news/2784223.html

相关文章:

  • 网站关键词不稳定企业策划推广公司
  • 带做网站绿标seo搜索引擎优化工资薪酬
  • 建设网站服务器 知乎企业网站推广方案
  • o2o商城网站制作制作网站要花多少钱
  • wordpress 文章索引石家庄关键词优化软件
  • 向国外支付网站开发费找培训机构的网站
  • 可以做仿牌网站郑州百度seo网站优化
  • 青海城乡和住房建设厅网站南京百度
  • 贵州住房和城乡建设部网站首页关键词优化意见
  • 成都专业网站建设价格低班级优化大师手机版下载(免费)
  • 长春网站建站全网推广的方式有哪些
  • 网站的开发工具和运行环境竞价交易规则
  • 真实的做视频网站360网站推广费用
  • 有什么网站接效果图做的常见的网络营销模式
  • 古交市住房和城乡建设局网站seo搜索引擎官网
  • 自己的公司怎么做网站网络seo外包
  • 动态网站开发结束语链接买卖平台
  • html做的网站图片横着摆放seo课程培训入门
  • 网站建设品网站关键词优化排名外包
  • 企业网站做优化排名象客西安市网站
  • 代做原创毕业设计网站免费发布信息不收费的网站
  • 网站建设怎么跟客服说东莞推广系统
  • wordpress及时聊天网站优化公司开始上班了
  • 企业邮箱个人注册河北seo基础知识
  • 网站建设公司河南郑州如何做好网站的推广工作
  • 哪个网站可查询有没有做社保卡关键字c语言
  • 网站建设分金手指排名十四百度刷seo关键词排名
  • 石家庄大型网站建站关键词智能优化排名
  • 网站建设包括什么科目石家庄手机端seo
  • 现在网站建设用到哪些技术短视频新媒体推广
  • 面试记录5 .net
  • 基于Python的反诈知识科普平台 Python+Django+Vue.js
  • 【Linux系统】匿名管道以及进程池的简单实现
  • 案例分享:BRAV-7123助力家用型人形机器人,智能生活未来已来
  • 在完全没有无线网络(Wi-Fi)和移动网络(蜂窝数据)的环境下,使用安卓平板,通过USB数据线(而不是Wi-Fi)来控制电脑(版本2)
  • word如何转换为pdf