Vue中的父子組件傳值.sync
vue父子組件傳值.sync
傳統(tǒng)的父子組件之間傳值
父組件通過 :變量=“xxx”將值傳給子組件
子組件通過props進行接收
但是子組件只有讀的屬性,不可以對數(shù)據(jù)進行更改,所以$emit傳回父組件,由父組件對數(shù)據(jù)進行修改
//父組件
<template>
<div class="content">
<btn :btnName='num' @changeFn= changeFn></btn>
</div>
</template>
子組件
export default {
name: 'btn',
props: {
btnName:{
type : [String,Number],
required: true
}
},
methods: {
changeNum(){
this.$emit('changeFn',888)
}
},
}
.sync相當于上面的父子組件傳值簡寫
父子雙向傳值語法糖
父組件在傳入子組件的數(shù)據(jù)后加上.sync 不需要在對子組件的$emit進行接收
<template>
<div class="content">
<btn :btnName.sync='num' ></btn>
</div>
</template>
子組件$emit傳回的不再是函數(shù) 而是 update:父組件傳過來的變量名稱
<script>
export default {
name: 'btn',
props: {
btnName:{
type : [String,Number],
required: true
}
},
methods: {
changeNum(){
this.$emit('update:btnName',888)
}
},
}
</script>
總的來說
.sync 使得父組件少走了處理 $emit的那一步
好了,以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Element-Plus之el-col與el-row快速布局
el-col是el-row的子元素,下面這篇文章主要給大家介紹了關于Element-Plus之el-col與el-row快速布局的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
vue點擊按鈕跳轉(zhuǎn)到另一個vue頁面實現(xiàn)方法
這篇文章主要給大家介紹了關于vue點擊按鈕跳轉(zhuǎn)到另一個vue頁面的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
詳解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Vue.js的指令是以v-開頭的,它們作用于HTML元素,指令提供了一些特殊的特性。這篇文章主要介紹了Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on 的相關知識,需要的朋友可以參考下2018-10-10
Vue.directive 實現(xiàn)元素scroll邏輯復用
這篇文章主要介紹了Vue.directive 實現(xiàn)元素scroll邏輯復用功能,文中給大家提到元素實現(xiàn)滾動的條件有兩個,具體內(nèi)容詳情大家參考下本文2019-11-11

