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.1、State 是一种数据结构,用于组件挂载时所需数据的默认值。State 可能会随着时间的推移而发生突变,但多数时候是作为用户事件行为的结果。

 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. 1.3 React 组件

    1.3.1 React 组件介绍 在 React 中组件是第一元素,是 React 的基础,一个 React 应用就是基于 React 组件的组合而成.前面的 JSX 练习过后,大家应该对 React ...

  2. react组件父传子

    react组件父传子,子组件使用父组件的数据,用props import React, { Component } from 'react'; class App extends Component ...

  3. react第六单元(react组件通信-父子组件通信-子父组件通信-跨级组件的传参方式-context方式的传参)

    第六单元(react组件通信-父子组件通信-子父组件通信-跨级组件的传参方式-context方式的传参) #课程目标 1.梳理react组件之间的关系 2.掌握父子传值的方法 3.掌握子父传值的方法 ...

  4. vue 组件之间相互传值 父传子 子传父

    1.父传子 把要传入的值放到父标签里  子组件使用props接收 父写法 子写法 2.子传父 子组件: childrenOnclick() { // 发布自定义事件 this.$emit(" ...

  5. Vue父子组件传值 | 父传子 | 子传父

    父传子 父容器 <template> <div> <zdy :module='test'></zdy> </div> </templa ...

  6. vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件

    Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...

  7. vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

    首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this ...

  8. Vue 父组件方法和参数传给子组件的方法

    <template> <div class="content-item"> <!-- openWnd是父组件自身的方法,openDutyWnd是子组件 ...

  9. React 组件间通信介绍

    React 组件间通信方式简介 React 组件间通信主要分为以下四种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面对这四种情况分别进行介绍:   父组件向子 ...

随机推荐

  1. 记录一次排查使用HttpWebRequest发送请求的发生“基础连接已关闭:接收时发生错误”异常问题的过程

    描述:某次更新程序,需要给测试员MM测试,之前都是正常的,更新后给MM测试就报异常System.Net.WebException 基础连接已经关闭:接收时发生错误 -------> System ...

  2. Matlab空对象模式

    在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查.Null 对象不是检查空值,而是反应一个不做任何动作的关系.这样的 Null 对象也可以在数据不可用 ...

  3. JavaScript深入浅出第3课:什么是垃圾回收算法?

    摘要: JS是如何回收内存的? <JavaScript深入浅出>系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课:函数是一 ...

  4. 生成Uuid工具类

    package com.freeter.util; import java.util.UUID; /** * @author liuqi * **/public class Uuid{ public ...

  5. Semaphore的简介及应用场景

    Semaphore是一个计数信号量,常用于限制可以访问某些资源(物理或逻辑的)线程数目. 常用函数: 信号量的构造函数 非公平: public Semaphore(int permits);//per ...

  6. Django 中的缓存问题

    Django 中的缓存问题 简单介绍 ​ 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. ​ 当一个网站的用户访问量很大的 ...

  7. ubuntu,安装、配置和美化(1)

    ubuntu linux 1.前言 1.1关于Ubuntu Linux Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“ ...

  8. nginx.conf 下日志host.access.log 说明

    位置usr/local/nginx/conf/nginx.conf $server_port 请求端口 $remote_addr 局域网代理IP:如果没同意任何代理的话$remote_addr 就是真 ...

  9. 机器学习——k-均值算法(聚类)

    文章目录 k-均值(k-means)聚类 1.k-均值算法 2.k-均值算法的代价函数 3.k-均值算法步骤 4.初始化聚类中心点和聚类个数 5.sklearn实现k-means算法 k-均值(k-m ...

  10. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...