首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(九)state 的简写方式

(九)state 的简写方式

作者头像
老怪兽
发布于 2023-02-22 06:37:21
发布于 2023-02-22 06:37:21
79800
代码可运行
举报
运行总次数:0
代码可运行

# 🍧一、state 的简写方式

# 课前预热
  • 在类中不能直接定义变量赋值,可以直接赋值,直接赋值就是往原型上追加一个属性
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Car {
    constructor(name, price) {
        this.name = name
        this.price = price
        this.a = 1
    }
}
const  c1 = new Car('奔驰', 199)
console.log(c1)
  • 等价于
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Car {
    constructor(name, price) {
        this.name = name
        this.price = price
        // this.a = 1
    }
    // 直接赋值,给 Car 的实例对象添加一个属性
    a = 1
}
const  c1 = new Car('奔驰', 199)
console.log(c1)

:::说明 明白了上面的写法,就知道 state 该怎么简写了 :::

# 简写 state
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
    // 赋值语句
    state = {
        isMood: false
    }

    render() {...}
}

// 渲染组件
ReactDom.render(<Person/>, document.getElmentById('test'))
# 简写方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Person {
    // 赋值语句
    state = {
        isMood: false
    }

    render() {...}

    // 赋值语句,只能写箭头函数,箭头函数是没有自己的 this 的他就像向外层找,就找到实例的 this
    demo = () => {
        const isMood = this.state.isMood
        this.setState({isMood: !isMood})
    }
}

// 渲染组件
ReactDom.render(<Person/>, document.getElmentById('test'))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年1月3日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React---面向组件编程
一、基本理解和使用 1. 使用React开发者工具调试 2. 效果 函数式组件: <script type="text/babel"> //1.创建函数式组件 func
半指温柔乐
2021/04/16
3750
React---面向组件编程
(四)props 的简写方式
# 🐷一、props 的只读性质 # props 是只读的,只允许读取,不允许修改 如果强行修改,就会出现一下的错误,不能在一个只读的属性上进行修改 class Person extends React.Component { render() { console.log(this) const { naem, age, sex } = this.props // 如果在这里直接修改就会报错 // this.props.name =
老怪兽
2023/02/22
1.1K0
(四)props 的简写方式
(八)setState 的使用
# 🍧一、setState 的使用 接着上一章,改变 isMood 的值 // 1. 创建一个类组件 class Mood extends React.Component { constructor(props) { super(props) // 初始化状态 this.state = { isMood: true } // 改变 this 指向 this.demo = this.
老怪兽
2023/02/22
5030
(八)setState 的使用
(四)对 state 的理解
# 🥥一、什么是简单组件,什么是复杂组件 如果组件是有状态的 state 就是复杂组件 反之,组件没有 state 就是简单组件 # 🦞二、组件实例的三大核心属性之一 state 说到组件实例,就必须是 class 类定义的组件,才能使用 state props refs # 🥡二、初始化 state # (一)、按照需求初始化一个组件 需求:点击文字在开心和伤心两个状态之间切换 // 1. 创建一个类组件 class Mood extends React.Component { render()
老怪兽
2023/02/22
2320
(四)对 state 的理解
(五)类式组件中的构造器与 props
构造器 constructor 是否接收 props,是否传递给 super,取决于:是否要在构造器中通过 this 访问 props, 在开发的时候基本上是用不到构造器的
老怪兽
2023/02/22
4720
(五)类式组件中的构造器与 props
(七)总结 props
# 🐷一、总结 props 批量传递 props 采用扩展运算符方式 {...} 快速了解扩展运算符 ReactDOM.render(<Person />, document.getElmentById('test')) 对传递值进行限制 propsTypes = { key: PropsTypes.类型.是否必传 key: PropsTypes.string.isRequired } props 设置默认值 defaultProps = { key: 默认值 } props简写方式
老怪兽
2023/02/22
3170
(七)总结 props
React---组件实例三大核心属性(一)state
一、理解 state是组件对象最重要的属性, 值是对象(可以包含多个key-value的组合) 组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件) 二、 强烈注意 组件中render方法中的this为组件实例对象 组件自定义的方法中this为undefined,如何解决?     a) 强制绑定this: 通过函数对象的bind()     b) 箭头函数    3. 状态数据,不能直接修改或更新 三、内部原理 1. render调用次数:1+n次(1是初始化的那次 n是
半指温柔乐
2021/04/19
6010
(六)函数式组件使用 props
state 和 refs 需要使用 this 点出自己实例身上的属性,而函数式组件因为开启了严格模式,所以他没有自己的 this 所以不能使用 state 和 refs 但是函数可以接收参数,所以可以使用 props
老怪兽
2023/02/22
4340
(六)函数式组件使用 props
(三)复习类相关知识
# 🥥一、类式组件 类式组件适用于【复杂组件】的定义,类式组件需要用到 js 相关的类知识 类的基本知识 # 🥠二、定义一个类式组件,继承 React 自带的 React.Component 类 // 1.创建类式组件 必须要继承 React 中自带的 React.Component class Demo extends React.Component { } 类式组件的三个必要条件 必须继承 React 自带的 React.Component 类 必须调用 render 这个方法 render 方法必
老怪兽
2023/02/22
2520
(三)复习类相关知识
React--7: 组件的三大核心属性1:state
标题深究其实是:组件(实例)的三大核心属性。 而 只有类组件才有实例,函数式组件根本没资格。为了解决函数式组件的这个问题 react 又推出了 hooks。
用户4793865
2023/01/12
1.7K0
(一)字符转形式的 ref
# 🍇一、props 的基本使用 先实现一个需求效果 class Demo extends React.Component{ render() { return ( <div> <input type="text" placeholder="点击按钮提示数据"/> <button>点我提示左侧的数据</button> <input type="text" pla
老怪兽
2023/02/22
7310
(一)字符转形式的 ref
(七)解决类中 this 指向问题
# 🍧一、类组件中 方法的 this 一行代码解决类中 this 指向问题,通过类的关键字 bind 来改变 this 指向 // 1. 创建一个类组件 class Mood extends React.Component { constructor(props) { super(props) // 初始化状态 this.state = { isMood: true } // 改变 this 指向
老怪兽
2023/02/22
2530
(七)解决类中 this 指向问题
(九)... 扩展运算符的基本知识
🐆一、跟数组一起使用 展开一个数组 let arr1 = [1, 3, 5, 7, 9] let arr2 = [2, 4, 6, 8, 10] console.log(...arr1) 链接数组 let arr1 = [1, 3, 5, 7, 9] let arr2 = [2, 4, 6, 8, 10] console.log([...arr1, ...arr2]) 🐼二、函数传参 接收不固定的值 function sum(...nums) { // 求和累加 re
老怪兽
2023/02/22
3190
(九)... 扩展运算符的基本知识
前端小知识14点(2019.4.14)
1、React.PureComponent 与 React.Component 的区别 React.PureComponent 与 React.Component 几乎完全相同,但 React.PureComponent 通过 prop 和 state 的浅对比来实现 shouldComponentUpate()
进击的小进进
2022/03/28
5280
前端小知识14点(2019.4.14)
React---组件的生命周期
2. 更新阶段: 由组件内部this.setSate()或父组件重新render触发
半指温柔乐
2021/04/22
1.1K0
【ECMAScript6】es6 要点(一)剩余参数 | 数组方法 | 解构赋值 | 字符串模板 | 面向对象 | 模块
let : 不能重复声明,变量-可以修改,定义自身的块级作用域 const : 不能重复声明,常量-不能修改,块级作用域 。
前端修罗场
2023/10/07
2390
(六)类组件中 方法的 this
# 🍧一、类组件中 方法的 this // 1. 创建一个类组件 class Mood extends React.Component { constructor(props) { super(props) // 初始化状态 this.state = { isMood: true } } render() { // 结构赋值 读取状态 const { isMood
老怪兽
2023/02/22
1K0
(六)类组件中 方法的 this
(五)jsx 语法规则
# 🍈 一、什么是 jsx jsx 全称叫做 JavaScript XML 是React 定义的一种类似于 XML 的 js 扩展语法:JS+XML 本质是 React.createElment(标签名, 标签属性, 标签体内容) 方法的语法糖 # 🍧二、什么是 XML XML 早期用于存储和传输数据 <student> <name>TOM</name> <age>18</age> </student> # ☕三、jsx 语法规则 数据写死 // 创建虚拟 DOM const VDOM =
老怪兽
2023/02/21
4250
React两大组件,三大核心属性,事件处理和函数柯里化
3.我们编码时基本只需要操作react的虚拟DOM相关数据, react会转换为真实DOM变化而更新界。
大忽悠爱学习
2021/11/15
3.3K0
浅谈react 中的 this 指向
https://react.docschina.org/docs/react-without-jsx.html
念念不忘
2019/03/29
2.1K0
浅谈react 中的 this 指向
相关推荐
React---面向组件编程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档