本文最后更新于 868 天前,其中的信息可能已经有所发展或是发生改变。
props属性来定义父组件传递过来的数据<script>
// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {
msg: '这是父组件中的消息'
},
components: {
son: {
template: '<h1>这是子组件 --- {{finfo}}</h1>',
props: ['finfo']
}
}
});
</script>v-bind或简化指令,将数据传递到子组件中:<div id="app">
<son :finfo="msg"></son>
</div>getMsg是父组件中methods中定义的方法名称,func是子组件调用传递过来方法时候的方法名称<son @func="getMsg"></son>this.$emit('方法名', 要传递的数据)方式,来调用父组件中的方法,同时把数据传递给父组件使用<template id="tmp">
<div @click="myfunc('~')">
<h1>父组件向子组件传值</h1>
<h2>{{msg}}</h2>
<h2 >2.{{parentmsg}}</h2>
</div>
</template>
<div id="app">
<com :parentmsg="parentmsg1" @func="show"></com>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
parentmsg1:"父组件的data"
},
methods:{
show(datastr){
console.log("hello")
this.parentmsg1=this.parentmsg1+datastr
}
},
components:{
com:{
template:"#tmp",
data(){
return {
msg:"子组件的data"
}
},
props:['parentmsg'],
methods:{
myfunc(datastr){
this.$emit('func',datastr)
}
}
}
}
})
</script>变量名尽量不要用驼峰命名,容易出问题 子组件中的 所有 props 中的数据,都是通过 父组件传递给子组件的,都是只读的,无法重新赋值 子组件中的 data 数据,并不是通过 父组件传递过来的,而是子组件自身私有的,比如: 子组件通过 Ajax ,请求回来的数据,都可以放到 data 身上,data 上的数据,都是可读可写的;
Post Views: 438