首頁 > web前端 > js教程 > 主體

Vue2父元件與子元件的雙向綁定怎麼實現

php中世界最好的语言
發布: 2018-04-11 17:30:04
原創
1433 人瀏覽過

這次帶給大家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中文網其它相關文章!

推薦閱讀:

Django怎麼實作檔案下載功能

#vue中怎麼引用本機靜態圖片

以上是Vue2父元件與子元件的雙向綁定怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板