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

组件与组件通信

props 与 state 的区别

state 的主要作用是用于组件保存、控制、修改 自己 的可变状态,在组件内部进行初始化,也可以在组件内部进行修改,但是组件外部不能修改组件的 state props 的主要作用是让使用该组件的父组件可以传入参数来配置该组件,它是外部传进来的配置参数,组件内部无法控制也无法修改 state 和 props 都可以决定组件的外观和显示状态。通常,props 做为不变数据或者初始化数据传递给组件,可变状态使用 state

组件通信与数据流

在 React.js 中,数据是从上自下流动(传递)的,也就是一个父组件可以把它的 state / props 通过 props 传递给它的子组件,但是子组件不能修改 props - React.js 是单向数据流,如果子组件需要修改父组件状态(数据),是通过回调函数方式来完成的。

  • 父级向子级通信
  • 子级向父级通信

React

函数式组件

  • 函数的名称就是组件的名称
  • 函数的返回值就是组件要渲染的内容

类式组件

  • 组件类必须继承 React.Component
  • 组件类必须有 render 方法
创建 FriendList 组件
class FriendList extends React.Component {
   render() {
       return (
           <div className="friend-list">
                <div className="friend-group">
                    <dt>家人</dt>
                    <dd>爸爸</dd>
                    <dd>妈妈</dd>
                </div>
                <div className="friend-group">
                    <dt>朋友</dt>
                    <dd>张三</dd>
                    <dd>李四</dd>
                    <dd>王五</dd>
                </div>
                <div className="friend-group">
                    <dt>客户</dt>
                    <dd>阿里</dd>
                    <dd>腾讯</dd>
                    <dd>头条</dd>
                </div>
            </div>
        );
    }
}

样式

.friend-list {
    border: 1px solid #000000;
    width: 200px;
}
.friend-group dt {
    padding: 10px;
    background-color: rgb(64, 158, 255);
    font-weight: bold;
}
.friend-group dd {
    padding: 10px;
    display: none;
}
.friend-group.expanded dd {
    display: block;
}
.friend-group dd.checked {
    background: green;
}

组件复用 - 数据抽取

let datas = {
    family: {
        title: '家人',
        list: [
            {name: '爸爸'},
            {name: '妈妈'}
        ]
    },
    friend: {
        title: '朋友',
        list: [
            {name: '张三'},
            {name: '李四'},
            {name: '王五'}
        ]
    },
    customer: {
        title: '客户',
        list: [
            {name: '阿里'},
            {name: '腾讯'},
            {name

相关文章:

  • 组建的引入与传参
  • 小程序游戏请求
  • 小程序登录
  • 云开发增删改
  • 2021-02-06
  • 小程序框架初识和mpvue的安装步骤
  • 获取用户当前地址
  • plugins的介绍使用
  • React初步认识组件
  • React代码联系
  • React注意事项
  • react 自定义构建初期
  • React的循环数据渲染到页面
  • React初期的事件
  • setState异步原理 和 react组件通信
  • 【个人向】《HTTP图解》阅后小结
  • avalon2.2的VM生成过程
  • CAP 一致性协议及应用解析
  • Effective Java 笔记(一)
  • fetch 从初识到应用
  • Java 多线程编程之:notify 和 wait 用法
  • Java超时控制的实现
  • java小心机(3)| 浅析finalize()
  • JSDuck 与 AngularJS 融合技巧
  • js面向对象
  • Nacos系列:Nacos的Java SDK使用
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spark学习笔记之相关记录
  • Vue 动态创建 component
  • 程序员最讨厌的9句话,你可有补充?
  • 后端_MYSQL
  • 基于遗传算法的优化问题求解
  • 聊聊sentinel的DegradeSlot
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 排序算法之--选择排序
  • 前端之React实战:创建跨平台的项目架构
  • 自定义函数
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​flutter 代码混淆
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • (20050108)又读《平凡的世界》
  • (6)设计一个TimeMap
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++17) optional的使用
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Note)C++中的继承方式
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)德国人的记事本