React组件介绍与使用(父传子、子传父、兄弟传)
1、创建组件的方法
1.1、函数式无状态组件
1.1.1、语法
1 function myComponent(props) {
2 return
3 <div>Hello {props.name}</div>
4 }
1.1.2、特点
● 它是为了创建纯展示组件,这种组件只负责根据传入的props来展示,不涉及到state状态的操作。
● 组件不能访问this对象
● 不能访问生命周期方法
1.1.3、建议
如果可能,尽量使用无状态组件
2、(组件的)状态(state)和属性(props)之间有何不同
2.2、Props(properties 的简写)则是组件的配置。props 由父组件传递给子组件,并且就子组件而言,props 是不可变的(immutable)。组件不能改变自身 的 props,但是可以把其子组件的 props 放在一起(统一管理)。Props 也不仅仅是数据–回调函数也可以通过 props 传递。
3、父子组件传值
3.1、父组件Father.js
import React from 'react';
import Son from './Son'
//父组件
class Father extends React.Component{
constructor(){super();
this.state={
message:''
}
}
//声明一个函数,用户接收子组件的传值
getSonMess(msg){
consloe.log('子组件传过来的值 '+msg)
}
render(){
return(
<React.Fragment>
<Son mess='hello Son' sonMess={this.getSonMess}>
</React.Fragment>
);
}
}
export default Father;
3.2、子组件Son.js
import React from 'react'; //子组件
class Son extends React.Component{ render(){
return (
<React.Fragment> {this.props.mess},{this.props.sonMess()} </React.Fragment>
);
} } export default Son;
4、兄弟组件传值
4.1、组件Father.js
import React from 'react';
import Son from './Son';
import Son2 from './Son2';
//父组件
class Father extends React.Component{ constructor(){
super();
this.state = {
message:''
}
} //用于接收Son.js组件的数据函数
sonDatas(msg){
this.setState({
message:msg
});
console.log("在Father.js中展示Son.js生成的数据:"+msg);
} render(){
return (
<React.Fragment> <h1>在Father组件中显示:</h1>
<Son sondata={this.sonDatas.bind(this)}></Son>
<Son2 mess={this.state.message}></Son2>
</React.Fragment>
);
} } export default Father;
4.2、第一个“兄弟”, 组件 Son.js
import React from 'react'; //子组件
class Son extends React.Component{ //按钮点击事件函数
sonClick(){
this.props.sondata('这是从Son.js中生成的数据。。。');
} render(){
return (
<React.Fragment> <button onClick={this.sonClick.bind(this)}>Son组件中的按钮获取数据</button> </React.Fragment>
);
} } export default Son;
4.3、第二个“兄弟”,组件Son2.js
import React from 'react'; //子组件
class Son2 extends React.Component{ render(){
return (
<React.Fragment> <h1>
在Son2.js中展示Son.js中生成的数据,这个是Father.js传过来的,数据是:
{this.props.mess}
</h1> </React.Fragment>
);
} } export default Son2;
React组件介绍与使用(父传子、子传父、兄弟传)的更多相关文章
- 1.3 React 组件
1.3.1 React 组件介绍 在 React 中组件是第一元素,是 React 的基础,一个 React 应用就是基于 React 组件的组合而成.前面的 JSX 练习过后,大家应该对 React ...
- react组件父传子
react组件父传子,子组件使用父组件的数据,用props import React, { Component } from 'react'; class App extends Component ...
- react第六单元(react组件通信-父子组件通信-子父组件通信-跨级组件的传参方式-context方式的传参)
第六单元(react组件通信-父子组件通信-子父组件通信-跨级组件的传参方式-context方式的传参) #课程目标 1.梳理react组件之间的关系 2.掌握父子传值的方法 3.掌握子父传值的方法 ...
- vue 组件之间相互传值 父传子 子传父
1.父传子 把要传入的值放到父标签里 子组件使用props接收 父写法 子写法 2.子传父 子组件: childrenOnclick() { // 发布自定义事件 this.$emit(" ...
- Vue父子组件传值 | 父传子 | 子传父
父传子 父容器 <template> <div> <zdy :module='test'></zdy> </div> </templa ...
- vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件
Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...
- vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值
首先文字简单撸一下 父子传子 -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父 ------在父组件升上自定义一个方法,在子组件里通过this ...
- Vue 父组件方法和参数传给子组件的方法
<template> <div class="content-item"> <!-- openWnd是父组件自身的方法,openDutyWnd是子组件 ...
- React 组件间通信介绍
React 组件间通信方式简介 React 组件间通信主要分为以下四种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面对这四种情况分别进行介绍: 父组件向子 ...
随机推荐
- .net core启用 autoMapper
启用 autoMapper autoMapper 基于约定的对象映射器 目录 安装包 添加服务 书写映射关系 安装包 需要安装两个包:AutoMapper和AutoMapper.Extensi ...
- 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
问题: 该错误是因为应用程序需要jQuery,但是当前项目中并没有jQuery,或者存在jQuery但是程序不知道jQuery的存放路径. 解决方案: 一.下载jQuery,引入必要的jquery-X ...
- 经典SQL语句使用方法大全(自留用)
一.基础 1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份 ...
- zookeeper知识点总结
1. 关于ZooKeeper集群服务器数: ZooKeeper 官方确实给出了关于奇数的建议,但绝大部分 ZooKeeper 用户对于这个建议认识有偏差.一个 ZooKeeper 集群如果要对外提供可 ...
- logger.info占位符的使用
{}表示占位符,使用方法如下: package org.pine.controller; import javax.annotation.Resource; import org.pine.servi ...
- [转] QML PinchArea
本文转自安老师的博文:Qt Quick 事件处理之捏拉缩放与旋转 绪论 本文介绍在Android 等智能手机上的一个非常重要的手势:捏拉手势. 捏拉手势最早在苹果手机上得到应用,苹果还曾经尝试为此操作 ...
- android 第三方开源库 学习汇总
依赖注入框架ButterKnife https://github.com/JakeWharton/butterknife 学习过程 专注于android的View注入框架,并不支持其他方面 ...
- SpringCloud学习第四章-Eureka创建
注:因为有了父项目,所以不需要引入boot的jar,项目都是maven构建 1.pom.xml <?xml version="1.0" encoding="UTF- ...
- MySQL修炼之路一
1. MySQL概述 1. 什么是数据库 存储数据的仓库 2. 都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站 ... ... 3. 提供数据库服务的软件 1. 软件分类 MySQL. ...
- js处理滚动条操作
在做UI自动化项目的时候,我们不免会遇到一些页面的内容比较多,导致会有滚动条,但是我们又主要操作当前页面看不到的元素,这怎么办呢? 在我们实际操作过程中,我们肯定是直接滑动鼠标操作就可以完成,但是在做 ...