为了账号安全,请及时绑定邮箱和手机立即绑定
  • constructor 为组件创建的时候会执行的构造函数。

    this.state 为组件数据项,可以存储很多数据内容。

    循环获取state定义的list里面的内容

    {

    this.state.list.map((itxx) => {

        return <li>{itxx}</li>

    })

    }

    使用.bind(this) 语句表示绑定父组件,不然子组件里面的this表示当前而无法找到this.state

    this.state.list.push('xxx'); 无法添加数据到list并改变组件显示,

    而需要调用this.setState方法和展开运算符语法添加到list。

    setState数据发生变化时界面才会发送变化。

    增加第二个参数返回(item, index)index 为list数组的下标,

    <li 标签增加 key={index} 去除没有key警告(注意key值不能重复)

    查看全部
  • jsx 语法

    可以在标签内写JS表达式语句,如:{ 1 + 2}

    不能这样写,JS判断语句是会报错的

    查看全部
    0 采集 收起 来源:简单的JSX语法

    2023-03-07

  • 组件是网页上的一部分,可以是一整块,或一个输入框,或一个按钮,或一个显示的区域

    React 中以大写开头的都是一个组件。

    import React from 'react' 表示引入react语法。

    引入的'react-dom' 别名ReactDOM 去加载APP这个组件。

    创建一个组件,继承Componect,注意import React, { Component } from 'react'; 

    还要注意Export 表示导出组件。

    或这样写,但继承变成:React.Component 组件。

    查看全部
    0 采集 收起 来源:什么是组件?

    2023-03-07

  • ReactFiber是React16之后的版本

    查看全部
    0 采集 收起 来源:React 简介

    2022-11-18

  • 行内样式使用对象的方式编码

    |  style={{'background': 'red'}} 

    class改名为 className

    | className='add-btn'

    导入样式文件

    | import './style.css'

    如果不想render最外层div,使用 React.Fragment标签

    | <React.Fragment>

    |   <div>...</div>

    |   <ul>{this.getTodoItems()}</ul>

    | </React.Fragment>

    查看全部
  • 将this绑定放到结构方法中,能提高性能

        this.handleInputChange = this.handleInputChange.bind(this);
        this.handleBtnClick = this.handleBtnClick.bind(this);
        this.handleItemChange = this.handleItemChange.bind(this);

    给render()里面的 return 加上括号,方便写多行

            return (
              <TodoItem
                deleteItem={this.handleItemChange}
                key={index}
                content={item} />
            )


    使用ES6 解构赋值的写法

    const { deleteItem, index} = this.props;
    deleteItem(index)

    把代码量比较多的item提取成方法

      getTodoItems(){
        return (
          this.state.list.map((item, index) => {
            return (
              <TodoItem
                deleteItem={this.handleItemChange}
                key={index}
                content={item} />
            )
          })
        )
      }
    <ul>{this.getTodoItems()}</ul>
    查看全部
    0 采集 收起 来源:代码优化

    2022-11-16

  • 父组件将数组索引传给子组件

    | <TodoItem delete={this.handleItemChange.bind(this)} key={index} content={item} />

        通过 index属性传递数组下标

        子组件通过 props.index 获得下标


    子组件跟父组件通信,需要调用父组件传递过来的方法

    | this.props.delete(index)

    父组件通过属性给子组件传参,子组件通过事件跟父组件通信

    查看全部
  • 拆分TodoItem组件

    import React from "react";
    
    class TodoItem extends React.Component {
        render(){
            return (
                <div>{this.props.content}</div>
            )
        }
    }
    
    export default TodoItem;


    React有父子组件的概念,TodoList为父组件,TodoItem为子组件,

        父组件通过属性给子组件传参

        | <TodoItem content={item} />

        子组件通过props接收父组件参数

        | <div>{this.props.content}</div>

    查看全部
  • React不直接操作DOM,删除功能操作的是数据

    通过数据下标做删除功能,下标一般用数据库id,实在没办法采用数组索引

    通过 splice方法做数组删除

    | list.splice(index, 1);

    尽量不要直接操作 state数据,而是复制出一个副本

    | const list = this.state.list;

      handleItemChange(index){
        const list = this.state.list;
        list.splice(index, 1);
        this.setState({ list })
      }
    查看全部
  • 通过 state 做 input 数据管理

    通过 event.target.value 获取input的值

    通过 setState 更新 input 数据

    通过 input的value绑定 state的值

    | value={this.state.inputValue}

    新增完后清空 input的值

    | this.setState({inputValue: '' })


    import React from 'react'
    
    class TodoList extends React.Component {
      constructor(props){
        super(props);
        this.state = {
          list:[],
          inputValue: '',
        }
      }
    
      handleBtnClick(){
        this.setState({
          list:[...this.state.list, this.state.inputValue],
          inputValue: ''
        })
      }
      handleInputChange(e){
        this.setState({
          inputValue: e.target.value
        })
      }
    
      render(){
        return (
          <div>
            <div>
              <input value={this.state.inputValue} onChange={this.handleInputChange.bind(this)}  />
              <button onClick={this.handleBtnClick.bind(this)}>添加</button>
            </div>
            <ul>
              {this.state.list.map((item, index)=>{
                return (<li key={index}>{item}</li>)
              })}
            </ul>
          </div>
        )
      }
    }
    
    export default TodoList;
    查看全部
  • 编写TodoList功能

        将 App组件 改成TodoList

            App文件重命名为 Todolist

            类名改成Todolist, 导出 Todolsit

            index.js 引入 Todolist


        render 返回的最外层不能多兄弟标签

        事件名称使用小驼峰命名

        类里面方法中的this默认指向方法而不是类,所以需要对this做绑定

        不能直接赋值 state,而是通过 setState()

        ...arr 数组展开运算符,可以用于追加内容

        | [...this.state.list, 'english']

    查看全部
  • 简单的JSX语法

        可以用标签结构的代码

        | <div>Hello</div>

        可以写JS表达式

        | {1+1}

    查看全部
    0 采集 收起 来源:简单的JSX语法

    2022-11-15

  • 什么是组件

        从网页的角度理解

            组件是网页组成的一部分


        React是一个基于组件开发的框架

            组件用大写字母开头

            react-dom 用于挂载DOM

            | ReactDOM.createRoot(document.getElementById('root'))

            | #root 的div在 public/index.html 中


        App.js 是一个组件

            组件中必须有一个 render()

                里面必须有 return 


            export和import 配对使用

    查看全部
    0 采集 收起 来源:什么是组件?

    2022-11-15

  • 脚手架创建的代码介绍

        index.js    →  入口

            引入 App.js 


    可精简文件

        reportWebVitals   →  报错文件

        index.css    →  样式文件

        App.test.js    →  自动化测试用的

        App.css    →  演示的样式文件

        logo.svg    →  Logo图片

    查看全部
  • nodeJs安装

        nodeJs官网

        LTS 稳定版本

        | Long Term Support

        Current 最新版本

        检查nodeJs版本

            node -v


        检查 npm 版本

            npm -v


    React 安装

        Creact React APP 脚手架工具

            npx create-react-app todoList    →  会创建todoList文件夹

            cd todoList    →  进入文件夹

            npm start    →  运行项目

    查看全部

举报

0/150
提交
取消
课程须知
1、对Javascript基础知识已经掌握。 2、对Es6和webpack有简单了解。
老师告诉你能学到什么?
1、React项目架构搭建 2、JSX语法 3、React组件化开发 4、React组件间通信 5、React中的事件 6、React代码优化 7、React中组件的样式修饰

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!