React TodoList功能案例 学习笔记

  • 定义组件
import React,{Component} from "react";

class App extends Component {
  render() {
    return <div className="App">hello wyh</div>;
  }
}
  • 组件开头必须大写

    • 大写-组件标签
    • 小写-HTML标签
  • 和VUE一样,每一个template必须要有一个标签包裹,如果不需要,则可以导如Fragment作为占位符

  • onChange={this.handleInputChange.bind(this)}

  • 如果每一个事件都bind(this)会影响性能,于是会在constructor函数里声明一次

// constructor固定写法,传入props super继承
 constructor(props) {
    // 调用父类的构造函数
    super(props);
    this.state = {
      inputValue: "",
      list: [1, 2, 3]
    };
    this.handleInputChange = this.handleInputChange.bind(this);
    this.submit = this.submit.bind(this);
    this.delete=this.delete.bind(this)
  }

  • 同VUE中的data return,数据state 放在构造函数中声明注册

  • VUE有三层:template、script、css;script中又是各阶段的生命周期

    • 对应的react,一个组件包含:
      • 注册组件,
      • class XXX extends Components{}
      • 声明构造函数、注册state
      • render(){ return (html&js)}
      • function
  • render中文本作为HTML的标签输出

    • dangerouslySetHtml={{__html:XXX}}
  • 变量冲突

    • class=> className
    • for=> htmlFor
  • 组价绑定值或者传值,声明变量花括号包裹传值

 <TodoItem
  content={item}
  index={index}
  deleteItem={this.delete}
  key={index}
></TodoItem>
  • 子组件接收
const {param}=this.props
{param}
  • 传递方法也是一样的,state接收
  • 子组件调用父组件方法或者传值
    • 数据单向流,通过事件派发出去
delete(){
    const {deleteItem,index}=this.props
    deleteItem(index)
}
  • input 数据的双向绑定,需要传递this,并且通过e.target.value 拿到新值
  • state值的修改使用this.setState,使用箭头函数访问到一个修改前的state的值prevState,可以直接操作
    • this.state((prevState)=>({xxx}))
    • this.state((prevState)=>{function; return {XXX}})
this.setState((prevState)=>({
      list: [...prevState.list, prevState.inputValue],
      inputValue: ""
    }))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值