vue元件(component)傳值問題
父傳子:(即在子元件中訪問父元件中的資料)
1.在父元件中使用子元件時,新增自定義屬性,屬性值為傳輸的內容
<myfooter msg='hello父元件給子元件的內容'></myfooter>
2.在子元件中,使用props:['msg']接收父元件中傳遞的屬性
props:['msg'],//當前子元件希望從父元件中接收的屬性
多個屬性使用逗號分隔
注: props宣告在和data,methods同級位置
程式碼案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../vue.js"></script>
<script>
window.onload=function(){
//子元件
Vue.component('myfooter',{
data(){
return {
substr:'myfooter'
}
},
props:['msg','str','num'],//子元件想要從父元件中接收的屬性
template:`
<div>
<p>hello--- {{msg}}---</p>
<p>{{str}}</p>
<p>{{num}}</p>
</div>
`
})
//例項物件
var myheader={//父元件
data(){
return {
num:0
}
},
methods:{
handler(){
this.num++
}
},
template:`
<div>
<p>哇哈哈哈--- {{num}}</p>
<p>第二個哇哈哈哈---</p>
<myfooter msg='hello這是父給子的內容' str='my' :num='num'></myfooter>
<button v-on:click='handler'>點選這裡</button>
</div>
`
}
var app=new Vue({
el:'#app',
data:{},
methods:{},
components:{
'myheader':myheader,
}
})
}
</script>
</head>
<body>
<div id="app">
<myheader></myheader>
</div>
</body>
</html>
子傳父:(即在父元件中訪問子元件中的資料)
1.在子元件中使用事件繫結觸發父級的自定義事件
$emit('name',data,data1); //name為觸發的自定義函式名稱,data,data1為傳送的資料
2.在父元件中繫結自定義事件
在自定義事件的事件處理程式中,引數為傳遞的值
程式碼案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../vue.js"></script>
<script>
window.onload=function(){
Vue.component('myfooter',{//子元件
data(){
return {
substr:'myfooter'
}
},
methods:{
send(){
this.$emit('accept','send','send1',this.substr)
}
},
template:`
<div>
<p v-on:click='send'>click--send</p>
</div>
`
})
var myheader={//父元件
data(){
return {
num:0,
substr:''
}
},
methods:{
handler(){
this.num++
},
accept(data,data1,data2){
this.substr=data
console.log(data,data1,data2);//send
}
},
template:`
<div>
{{substr}} //send
<myfooter v-on:accept='accept'></myfooter>
</div>
`
}
var app=new Vue({
el:'#app',
data:{},
methods:{},
components:{
'myheader':myheader,
}
})
}
</script>
</head>
<body>
<div id="app">
<myheader></myheader>
</div>
</body>
</html>
相關文章
- vue 父元件props傳值子元件時 的更新問題Vue元件
- vue使用的props元件傳值問題處理Vue元件
- Vue 元件傳值Vue元件
- vue 元件(component)命名的小細節問題(大小寫問題)Vue元件
- Vue 元件間傳值Vue元件
- Vue元件、元件傳值和元件插槽Vue元件
- Vue之元件間傳值Vue元件
- vue和react元件傳值VueReact元件
- vue-父子元件之傳值和單項資料流問題Vue元件
- vue父元件和子元件傳值Vue元件
- 父子元件之間的傳值問題元件
- Vue--子元件互相傳值,子元件來回傳值,傳值反覆橫跳Vue元件
- Vue子元件接收父元件傳值方式Vue元件
- vue子元件向父元件傳遞值Vue元件
- 元件複用傳值(待解決問題)元件
- 【VUE入門】父元件給子元件傳值Vue元件
- vue子元件怎麼向父元件傳值Vue元件
- VUE 父元件動態傳值給子元件Vue元件
- vue子元件向父元件傳值(實戰)Vue元件
- Vue - 元件之間的傳值方式Vue元件
- Vue 元件間的傳值(通訊)Vue元件
- vue元件巢狀之 - 父元件向子元件傳值Vue元件巢狀
- vue---註冊元件、元件之間父子傳值Vue元件
- vue 兄弟元件之間傳值之busVue元件
- Vue.js 元件之間的傳值Vue.js元件
- vue元件封裝及父子元件傳值,事件處理Vue元件封裝事件
- Vue父子元件如何雙向繫結傳值Vue元件
- vue父子元件之間傳值以及方法呼叫Vue元件
- Vue--子元件之間相互呼叫及傳值Vue元件
- 動態渲染之vue頁面向元件間傳值Vue元件
- 簡單說說vue的父子元件,父子元件傳值和vuexVue元件
- 解決vue的component標籤渲染問題的方法Vue
- Vue元件(35)動態元件 component 的 is 到底可以是啥?Vue元件
- vue 子元件為何不可以修改父元件傳遞的值?Vue元件
- vue3 父元件【屬性】傳值給子元件【props】接收Vue元件
- vue 基礎入門筆記 13:父元件向子元件傳值、父元件向子元件傳遞方法Vue筆記元件
- vue兩個元件間值的傳遞或修改方式Vue元件
- vue 父子元件傳值報錯:this.$emit is not a function 解決Vue元件MITFunction