vue 组件数据传递
//比如<ppx v-bind:data="arr"></ppx>
//简写<ppx :data="arr">
子组件通过props来接收数据
//props:['data']
最后使用即可
//{{data}}
注意:
自定义属性不要和子组件数据名称一样
<div id="app">
<!-- arr 是父组件的-->
<ppx :data="arr"></ppx>
</div>
let obj = {
props:['data'],
template:`
<ul>
<li v-for="(val,key) in data">
{{val}}
</li>
</ul>
`,
data(){
return {
val:'我是子组件'
}
}
}
Vue.component('ppx',obj);
new Vue({
el:'#app',
data:{
arr:[111,222,333]
}
});
子级传递父级
change(){
this.$emit('customev',id,xxx)
}
<div id="app">
<h2>父组件</h2>
<input type="text" v-model="val" @keyup.13="add" >
{{arr}}
<h4>子组件</h4>
<ppx :data="arr" @changebool="ck"></ppx>
</div>
let obj={
props:{
data:{
type:Array,
default:[]
}
},
template:`
<div>
<ul>
<li v-for="(val,key) in data">
<input type="checkbox" @click="changeC(val.id,$event)">
<span>{{val.name}}</span>
</li>
</ul>
</div>
`,
methods:{
changeC(id,ev){
//自定义的changebool事件,触发时候执行ck
this.$emit('changebool',id,ev.target.checked);
}
}
}
Vue.component('ppx',obj);
new Vue({
el:'#app',
data:{
val:'',
arr:[
{
id:0,
name:'巴黎',
checked:false
},
{
id:1,
name:'东京',
checked:false
},
{
id:2,
name:'伦敦',
checked:true
},
{
id:3,
name:'悉尼',
checked:false
}
]
},
methods:{
add(){
this.arr.push({
id:+new Date,//隐式类型转换,可以把字符串转成数字类型
name:this.val,
checked:false
});
this.val = '';
},
ck(id,bool){
this.arr.forEach(e=>{
//如果当前的id 等于 id 就把当前数据的checked 赋给 bool
if(e.id === id){
e.checked = bool;
}
})
}
}
});
另一种方法
<div id="app">
<h2>父级的</h2>
<input type="text" v-model="val" @keyup.13="add">
{{arr}}
<hr> <h2>子组件</h2>
<list :data="arr" :k="kk" @getchilddata="changeC"></list>
</div>
let obj = {
template:`
<div>
<ul>
<li v-for="(val,key) in cd">
<input
type="checkbox"
@change="changeFn(val.id)"
>
<span>{{val.txt}}</span>
</li>
</ul>
{{cd}}
</div>
`,
methods:{
changeFn(id){
let b;
this.cd.forEach(data => {
if(data.id === id){
data.checked = !data.checked;
b = data.checked;
}
});
this.$emit('getchilddata',id,b);
console.log(this.cd);
}
},
props:['data','k'],
data(){
return {
cd:JSON.parse(JSON.stringify(this.data))
}
}
}
Vue.component('list',obj);
new Vue({
el:'#app',
data:{
kk:'变',
val:'',
arr:[
{
id:0,
txt:'小明',
checked:false
},
{
id:1,
txt:'小红',
checked:false
},
{
id:2,
txt:'小刚',
checked:false
}
]
}
,methods:{
add(){
this.arr.push({
id: +new Date,
txt:this.val,
checked:false
});
this.val = '';
},
changeC(id,bool){
this.arr.forEach(e=>{
if(e.id === id){
e.checked = bool;
};
});
}
}
});
vue 组件数据传递的更多相关文章
- vue教程3-05 vue组件数据传递、父子组件数据获取,slot,router路由
vue教程3-05 vue组件数据传递 一.vue默认情况下,子组件也没法访问父组件数据 <!DOCTYPE html> <html lang="en"> ...
- React中父子组件数据传递
Vue.js中父子组件数据传递:Props Down , Events Up Angular中父子组件数据传递:Props Down, Events Up React中父子组件数据传递:Prop ...
- Vue之数据传递
基础:vue的响应式规则 简单的props更新 父组件 <template> <div> <block-a :out-data="x">< ...
- 关于vue.js父子组件数据传递
vue.js中使用props down,events up的原则进行父子组件间的通信,先来记录下props down,看个例子: <div id="app2"> < ...
- vue组件 Prop传递数据
组件实例的作用域是孤立的.这意味着不能(也不应该)在子组件的模板内直接引用父组件的数据.要让子组件使用父组件的数据,我们需要通过子组件的props选项. prop 是单向绑定的:当父组件的属性变化时, ...
- vue 多级组件数据传递
A包含B组件,B包含C组件 那么A 传递到C 组件可以通过 在B组件中绑定 $attrs 具体代码可以参见github: https://github.com/qiaoqiao10001/vueA ...
- vue2.0 父子组件数据传递prop
vue的一个核心概念就是组件,而组件实例的作用域是孤立的,所以组件之间是不能直接引用其他组件的数据的.极端点举例来说,就是可以在同一个项目中,每一个组件内都可以定义相同名称的数据. data () { ...
- Vue2.x中的父组件数据传递至子组件
父组件结构 template <template> <div> <v-girl-group :girls="aGirls"></v-gir ...
- Vue2.x之父子组件数据传递
父传子,并且通过fatherEvent接收子组件传过来的值 <template> <div class='father'> <Son :fatherData=" ...
随机推荐
- Codeforces访问提速攻略(小技巧)
update 这篇文章已废,因为有了 http://m1.codeforces.com codeforces是不是很慢呢?反正蒟蒻打比赛的时候经常几分钟打不开题面然后就被吊打了... 于是几番周折整理 ...
- 【Luogu3731】[HAOI2017]新型城市化(网络流,Tarjan)
[Luogu3731][HAOI2017]新型城市化(网络流,Tarjan) 题面 洛谷 给定一张反图,保证原图能分成不超过两个团,问有多少种加上一条边的方法,使得最大团的个数至少加上\(1\). 题 ...
- VSIX 插件右键菜单
vs2017 插件开发 环境 WIN10 VS2017 CMMT VSIX 参考资源: vs菜单命令ID速查 https://docs.microsoft.com/zh-cn/visualstudio ...
- js中获取css样式属性值
关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的.针对css ...
- [JLOI2016/SHOI2016]侦察守卫(树形dp)
小R和B神正在玩一款游戏.这款游戏的地图由N个点和N-1条无向边组成,每条无向边连接两个点,且地图是连通的.换句话说,游戏的地图是一棵有N个节点的树. 游戏中有一种道具叫做侦查守卫,当一名玩家在一个点 ...
- 编写高质量代码:改善Java程序的151个建议 --[65~78]
编写高质量代码:改善Java程序的151个建议 --[65~78] 原始类型数组不能作为asList的输入参数,否则会引起程序逻辑混乱. public class Client65 { public ...
- java 连接数组
一,使用Apache Commons的ArrayUtils Apache Commons类库有很多,几乎大多数的开源框架都依赖于它,Commons中的工具会节省你大部分时间,它包含一些常用的静态方法和 ...
- 洛谷P3168 任务查询系统
题意:有n个任务,第i个的存在时间是li~ri,有个权值.求t时刻第k大的权值. 这毒瘤...本来是前缀和 -> 主席树,我是树套树...然后光荣TLE. 其实很裸.一开始我写的是每个位置维护一 ...
- django跨域请求问题
一 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之 ...
- 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!
转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208 版权声明:本文为博主 ...