解決Vue2.x父組件與子組件之間的雙向綁定問題
最近在研究如何寫一套基于Vue2.x的UI組件給自己用,提升一點BIG,在制作含有input的組件遇到一個問題:不知怎樣才能把子組件中input與調(diào)用者(父組件)的數(shù)據(jù)實現(xiàn)雙向綁定,想過使用Vuex,但觀摩了一下其他優(yōu)秀的UI框架,發(fā)現(xiàn)使用Vuex會給其他使用者造成麻煩,于是決心找到尋求解決方法,在參考了幾篇大牛們文章后,終于找到。
在這將解決方案貼出,希望能幫助到和我一樣初次接觸Vue這個框架的同行們。
子組件的代碼邏輯
<template>
<div class="ne-ipt">
<input type="text" v-model="currentValue">
</div>
</template>
<style lang="less" scoped>
@import "../../assets/styles/form/form.less";
</style>
<script>
export default {
name: 'NeIpt',
props: {
// 接收一個由父級組件傳遞過來的值
value: {
type: String,
default: function () {
return ''
}
}
},
computed:{
currentValue: {
// 動態(tài)計算currentValue的值
get:function() {
return this.value; // 將props中的value賦值給currentValue
},
set:function(val) {
this.$emit('input', val); // 通過$emit觸發(fā)父組件
}
}
}
}
</script>
父組件代碼邏輯
<template>
<div id="button-index">
<ne-ipt placeholder="姓名" v-model="test"></ne-ipt>
</div>
</template>
<style>
</style>
<script>
import NeIpt from './NeIpt'
export default {
name: 'form-index',
data () {
return {
test: ''
}
},
components: {
NeIpt
}
}
</script>
在修改子組件的currentValue的時候其實通過$emit觸發(fā)input事件將值傳遞給調(diào)用者的v-model,從而實現(xiàn)雙向綁定。
總結(jié)
以上所述是小編給大家介紹的解決Vue2.x父組件與子組件之間的雙向綁定問題法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vue-cli history模式實現(xiàn)tomcat部署報404的解決方式
這篇文章主要介紹了vue-cli history模式實現(xiàn)tomcat部署報404的解決方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
詳解Vue ElementUI手動上傳excel文件到服務(wù)器
這篇文章主要介紹了詳解Vue ElementUI手動上傳excel文件到服務(wù)器,對ElementUI感興趣的同學(xué),可以參考下2021-05-05
springboot和vue前后端交互的實現(xiàn)示例
本文主要介紹了springboot和vue前后端交互的實現(xiàn)示例,將包括一個簡單的Vue.js前端應(yīng)用程序,用于發(fā)送GET請求到一個Spring Boot后端應(yīng)用程序,以獲取并顯示用戶列表,感興趣的可以了解一下2024-05-05
Vue?3?使用moment設(shè)置顯示時間格式的問題及解決方法
在Vue?3中,因為過濾器(filter)已經(jīng)被廢棄,取而代之的是全局方法(global?method),本文給大家介紹Vue?3?使用moment設(shè)置顯示時間格式的問題及解決方法,感興趣的朋友一起看看吧2023-12-12

