解決Vue2.x父組件與子組件之間的雙向綁定問題
最近在研究如何寫一套基于Vue2.x的UI組件給自己用,提升一點BIG,在制作含有input的組件遇到一個問題:不知怎樣才能把子組件中input與調用者(父組件)的數據實現(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事件將值傳遞給調用者的v-model,從而實現(xiàn)雙向綁定。
總結
以上所述是小編給大家介紹的解決Vue2.x父組件與子組件之間的雙向綁定問題法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
vue3+vite項目中按需引入vant報錯:Failed?to?resolve?import的解決方案
最近在vue項目中引入vant的時候發(fā)現(xiàn)報錯了,經過嘗試發(fā)現(xiàn)了問題,現(xiàn)將完整引入流程提供給大家參考,下面這篇文章主要給大家介紹了關于vue3+vite項目中按需引入vant報錯:Failed?to?resolve?import的解決方案,需要的朋友可以參考下2022-12-12vue3.0找不到模塊“./App.vue”或其相應的類型聲明(多種情況分析)
這篇文章主要介紹了vue3.0找不到模塊“./App.vue”或其相應的類型聲明,報錯原因是typescript?只能理解?.ts?文件,無法理解?.vue文件,本文通過多種情況分析給大家詳細講解,需要的朋友可以參考下2023-01-01Vue?ECharts實現(xiàn)機艙座位選擇展示功能代碼詳解
這篇文章主要介紹了Vue?ECharts實現(xiàn)機艙座位選擇展示,本文給大家分享一段簡短的代碼通過效果圖展示給大家介紹的非常明白,需要的朋友可以參考下2022-05-05element-plus結合sortablejs實現(xiàn)table行拖拽效果
使用element-plus的el-table組件創(chuàng)建出來的table,結合sortable.js實現(xiàn)table行拖動排序,文中有詳細的代碼示例供大家參考,具有一定的參考價值,感興趣的同學可以自己動手試一試2023-10-10Vue?element-ui?el-cascader?只能末級多選問題
這篇文章主要介紹了Vue?element-ui?el-cascader?只能末級多選問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09