這次帶給大家Vue2父元件與子元件的雙向綁定怎麼實現,Vue2父元件與子元件的雙向綁定實現的注意事項有哪些,下面就是實戰案例,一起來看一下。
# 最近在研究如何寫一套基於Vue2.x的UI元件給自己用,提升一點BIG,在製作含有input的元件遇到一個問題:不知怎樣才能把子元件中input與呼叫者(父元件)的數據實現雙向綁定,想過使用Vuex,但觀摩了一下其他優秀的UI框架,發現使用Vuex會給其他用戶造成麻煩,於是決心找到尋求解決方法,在參考了幾篇大牛們文章後,終於找到。
在這將解決方案貼出,希望能幫助到和我一樣初次接觸Vue這個框架的同行們。
子元件的程式碼邏輯
<template> <p class="ne-ipt"> <input type="text" v-model="currentValue"> </p> </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: { // 动态计算currentValue的值 get:function() { return this.value; // 将props中的value赋值给currentValue }, set:function(val) { this.$emit('input', val); // 通过$emit触发父组件 } } } } </script>
父元件程式碼邏輯
<template> <p id="button-index"> <ne-ipt placeholder="姓名" v-model="test"></ne-ipt> </p> </template> <style> </style> <script> import NeIpt from './NeIpt' export default { name: 'form-index', data () { return { test: '' } }, components: { NeIpt } } </script>
在修改子元件的currentValue的時候其實透過$emit觸發input事件將值傳遞給呼叫者的v-model,從而實現雙向綁定。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是Vue2父元件與子元件的雙向綁定怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!