vue 和react中子组件分别如何向父组件传值
vue子组件和父组件双向传值:
子:
Vue.component("childComponent",{
template:`<div><p @click='postData'>向父组件传值:点击我</p>{{result?'开':'关'}}<p @click='handleData'>子组件改变父组件的数值</p></div>`,
props:{
result:Boolean,
changeData:Function
},
data(){
return{
message:'从子组件传过来的数据'
}
},
methods:{
postData(){
this.$emit('receiveData',this.message)
},
handleData(){
this.changeData()
}
}
});
父:
const app = new Vue({
el: '#app',
router,
data:{
results:true,//开关状态数据
ChildData:'',
changedatas:'哈哈哈哈'
},
methods:{
change(){
this.results=!this.results;
},
FromChildData(data){
this.ChildData = data
},
handleData(){
this.changedatas +=2
}
},
components: { App },
template: `
<div id="app">
<p>changedatas:{{changedatas}}</p>
<p>接收子组件的数据:{{ChildData}}</p>
<childComponent :result="results"
:change-data="handleData"
@receiveData="FromChildData"></childComponent>
<input type="button" value="change me 开 关" @click="change">
</div>
`
})
react子组件和父组件双向传值:
父:
import React, { Component } from 'react';
import AppChild from './child.js'
class AppParent extends Component {
constructor(props){
super(props);
this.state = {
parentData: '从父组件过来的数据',
childData:'初始化数据'
};
}
handleChildData = (childData) => {
this.setState({
childData:childData
})
};
render() {
let parentData = this.state.parentData;
let childData = this.state.childData;
return (
<div className="parent">
<p>接收来自子组件传来的数据:{childData}</p>
<AppChild parentData={parentData} onChildDataChange={this.handleChildData}></AppChild>
</div>
);
}
}
export default AppParent;
子:
import React, { Component } from 'react';
class AppChild extends Component {
constructor(props){
super(props);
}
handleData = (e) =>{
// 接受父组件传递过来的函数,调用并传值给父组件
this.props.onChildDataChange(e.target.value)
};
render() {
return (
<div className="child">
AppChild
输入传入父组件的数据:<input type="text" value={this.props.childData} onChange={this.handleData}/>
<p>{this.props.parentData}</p>
</div>
);
}
}
export default AppChild;
最新文章
- 记录一些PHP7RCC1编译问题
- win环境变量立即生效
- 【项目】UICollectionViewFlowlayout再一次自定义
- ubunut 12.04 (64bit) android编译环境搭建
- FLASH CC 2015 CANVAS 导出音频问题
- 转载字典地址:http://blog.csdn.net/aladdinty/article/details/3591789
- javascript如何判断一个对象是否是窗口
- Android布局管理器(线性布局)
- input框限制只能输入正整数、字母、小数、
- element-ui 修改源码实践 --tranfer
- RxJava2.0相关教程
- python数据结构之直接插入排序
- Pytorch 各种奇葩古怪的使用方法
- linux系统中不同颜色的文件夹及根目录介绍
- Altium中Logo的导入方法及大小调整
- C#.NET常见问题(FAQ)-如何强制退出进程
- django常用封装
- flask系列一之环境搭建包安装
- 10、Flask实战第10天:视图使用装饰器
- springboot示例参考网站
热门文章
- pages
- [CSP-S模拟测试]:购物(柯朵莉树)
- Ubuntu中几个字符小玩意儿
- 部署-GPS授时系统:GPS授时系统
- django 给数据库批量添加数据
- 再谈 COW、ROW 快照技术
- windows10下安装docker报错:error during connect
- 【BASIS系列】SAP 批量锁住用户和TCODE的方法
- day16模块,导入模板完成的三件事,起别名,模块的分类,模块的加载顺序,环境变量,from...import语法导入,from...import *,链式导入,循环导入
- 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法