react 拆分组件于组件
Todolist.js(这是父组件)
import React, { Component,Fragment } from 'react';
import './style.css';
import TodoItem from './TodoItem';
class Todolist extends Component {
constructor(props) { //最优先执行的函数
super(props);
this.state={
inputValue:'',
list:[]
}
}
render() {
return (
<Fragment>
<div>
{/*这是一个todolist*/}
<label htmlFor='insertArea'>输入内容</label>
<input
id="insertArea"
className='input'
value={this.state.inputValue}
onChange={this.handleinputChange.bind(this)}
/>
<button onClick={this.handlebuttonClick.bind(this)}> 提交 </button>
</div>
<ul>
{
// 这是一个list
}
{
this.state.list.map((item,index)=>{
return(
<TodoItem //这是子组件
key={index}
index={ index }
item={ item }
deleteItem={this.handleItemdelt.bind(this)}
/>
)
})
}
</ul>
</Fragment>
);
}
handleinputChange(e){
this.setState({
inputValue:e.target.value
})
}
handlebuttonClick(e){
this.setState({
list:[...this.state.list,this.state.inputValue],
inputValue:''
})
}
handleItemdelt(index){
// immutable
// state 不允许我们坐任何的改变
const list=[...this.state.list]; // list的一个副本
list.splice(index,1);
this.setState({
list:list
})
}
}
export default Todolist;
TodoItem.js (子组件)
import React ,{ Component } from 'react';
class TodoItem extends Component{
render(){
return (<li
onClick={this.handleclick.bind(this)}
dangerouslySetInnerHTML={{__html:this.props.item}}
>
</li>)
}
handleclick(){
this.props.deleteItem(this.props.index);
}
}
export default TodoItem;
总结:
1. 如何创建组件的拆分?
一.首先创建一个TodoItem,然后按照react的组件写一个组件
2.父子组件的关系
Todolist是一个大的组件,TodoItem是里面小的组件,在react开发中,react是一个树形的结构
3.父组件向子组件传递方式
通过标签上的属性方式向子组件传递,它即可以传递数据,又可以传递方法
index={ index }
deleteItem={this.handleItemdelt.bind(this)}
4.子组件怎么接收传递过来的方式?
通过this.props.xxx的方式来接收,如:this.props.item
5.有的时候子组件要调用父组件的方法,去改变父组件的数据,要怎么改变?
直接通过this.props.方法调用,然后在父组件的this指向做一次绑定bind(this)
子组件:this.props.deleteItem()
父组件:deleteItem={this.handleItemdelt.bind(this)}
react 拆分组件于组件的更多相关文章
- react实战系列 —— react 的第一个组件
react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底 ...
- 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...
- react native 之子组件和父组件之间的通信
react native开发中,为了封装性经常需要自定义组件,这样就会出现父组件和子组件,那么怎么在父组件和子组件之间相互通信呢,也就是怎么在各自界面push和pop.传值. 父组件传递给子组件: 父 ...
- react native之组织组件
这些组件包括<TabView>,<NavigatorView>和<ListView>,他们实现了手机端最常用的交互和导航.你会发现这些组件在实际的项目中会非常有用. ...
- 【JAVASCRIPT】React学习- 数据流(组件通信)
摘要 react 学习包括几个部分: 文本渲染 JSX 语法 组件化思想 数据流 一 组件通信如何实现 父子组件之间不存在继承关系 1.1 父=>子通信 父组件可以通过 this.refs.xx ...
- React和Vue的组件更新比较
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px "Helvetica Neue"; color: #404040 } p. ...
- 翻译 | 玩转 React 表单 —— 受控组件详解
原文地址:React.js Forms: Controlled Components 原文作者:Loren Stewart 译者:小 B0Y 校对者:珂珂君 本文涵盖以下受控组件: 文本输入框 数字输 ...
- reactjs-swiper react轮播图组件基于swiper
react轮播图组件基于swiper demo地址:http://reactjs-ui.github.io/reactjs-swiper/simple.html 1. 下载安装 npm install ...
- React Native之倒计时组件的实现(ios android)
React Native之倒计时组件的实现(ios android) 一,需求分析 1,app需实现类似于淘宝的活动倒计时,并在倒计时结束时,活动也结束. 2,实现订单倒计时,并在倒计时结束时,订单关 ...
- React 学习(六) ---- 父子组件之间的通信
当有多个组件需要共享状态的时候,这就需要把状态放到这些组件共有的父组件中,相应地,这些组件就变成了子组件,从而涉及到父子组件之间的通信.父组件通过props 给子组件传递数据,子组件则是通过调用父组件 ...
随机推荐
- Unencapsulate SVM root mirror (ZT)
http://www.seedsofgenius.net/solaris/quick-reference-unencapsulate-svm-root-mirror Often times admin ...
- DDD学习笔录——领域驱动设计DDD概念总结
- 类型:JQuery;问题:ajax调用ashx文件;结果:ashx文件怎么获取$.ajax()方法发送的json数据
ashx文件怎么获取$.ajax()方法发送的json数据 作者:careful 和ajax相关 新浪微博QQ空间QQ微博百度搜藏腾讯朋友QQ收藏百度空间人人网开心网0 $.ajax({ t ...
- js分页demo
纯js实现分页 原理:所有数据已加载好,js通过遍历部分显示,实现分页效果 html代码 <html> <head> <meta charset='utf-8'> ...
- day70-oracle 12-Java调用存储过程和存储函数
我们现在调用的是存储过程和存储函数.用CallableSatement调用存储函数和存储过程. RDBMS:关系数据库.使用标准方式调用存储过程.也就是说:在mysql中调用和在oracle中调用的写 ...
- Ros疑问汇总
一.机器人描述文件三个: 机器人主体body文件: gazebo属性文件: 主文件 smartcar.urdf: 二.启动文件smartcar_display.rviz.launch:启动节点和模拟器 ...
- iOS 打包生成ipa文件(使用终端命令打包)
1. 打开终端 2.在终端输入cd +空格 把工程文件直接拖到终端,然后回车 3. 在终端输入xcodebuild,回车 然后你可以发现工程文件里多了一个build文件夹 在build文件夹中,有一个 ...
- 机器人自主移动的秘密,从SLAM技术说起(一)
博客转载自:https://www.leiphone.com/news/201609/c35bn1M9kgVaCCef.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...
- Linux 使用静态库注意事项
1. 静态库一定要放在生成文件后面 gcc main.c -o main libhello.a 2. 使用静态库时一定要连接所有用到的静态库 gcc main.c -o main liba.a lib ...
- 1027C Minimum Value Rectangle
传送门 题目大意 有n个木棍,让你选4根使得组成的矩形的周长的平方除以面积最小. 分析 这个题看起来就是一个需要证明的贪心,下面我们来证明一下: 所以我们只需要枚举一边所有的a的可能值,然后b就是比a ...