欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

巧妙運用v-model實現父子組件傳值的方法示例

 更新時間:2019年04月07日 14:15:26   作者:蝸牛爬爬  
這篇文章主要介紹了巧妙運用v-model實現父子組件傳值的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

v-model介紹

熟悉Vue的小伙伴們都知道 v-model 是Vue的一個很大的特色,可以實現雙向數據綁定。但本質上呢,它不過是語法糖,它負責監(jiān)聽用戶的輸入事件以更新數據。
以下摘取自Vue官方文檔

v-model 在內部使用不同的屬性為不同的輸入元素并拋出不同的事件:

  • text 和 textarea 使用 value 屬性和 input 事件;
  • checkbox 和 radio 使用 checked 屬性和 change 事件;
  • select 字段將 value 作為 prop 并將 change 作為事件。

如何巧妙利用 v-model實現父子組件傳值

通常子組件某個變量更新,并需要告知父組件時,需要子組件觸發(fā)事件并父組件監(jiān)聽該事件。

但是熟悉上面 v-model 的實現原理后,我們可以巧妙地運用這一原理(v-model 在內部使用不同的屬性為不同的輸入元素并拋出不同的事件)。

方法總結:

1.子組件設 value 為props屬性,并且不主動改變 value 值
2.子組件通過 this.$emit('input', 'updateValue') 將 updateValue 值傳給父組件
3.父組件通過 v-model="localValue" 綁定一個本地變量,即可實現子組件value值與父組件updateValue 值同步更新

舉例

子組件

子組件,包含一個button,并且將 value 屬性設為props( 因為v-model使用的是 value屬性 )。

點擊button時,sum值加1,同時通過 this.$emit('input', ++sum) 將更新后的值傳給父組件(前提:傳給父組件的值一定是你想賦給 value 的)

<template>
 <div>
  <button @click="increase" style="border: 1px solid black">increase</button>
 </div>
</template>
<script>
let sum = 0
export default {
 name: 'vmodel',
 props: {
  value: {
   type: Number,
   default: 0
  }
 },
 methods: {
  increase () {
   this.$emit('input', ++sum)
   console.log('value1', this.value)
  
   setTimeout(() => {
    console.log('value2', this.value)
   }, 50)
  }
 }
}
</script>

父組件

父組件中,通過 v-model 綁定一個本地變量,即可實現子父組件同步更新

<div>
  <increase v-model="rangeValue"></increase>
  <p>value:{{rangeValue}}</p>
</div>
<script>
data () {
  return {
   rangeValue: 0
  }
}
</script>

實際上,這個過程是首先子組件通過 $emit('input') 更新父組件的本地變量,然后子組件中的 value 屬性通過 props 得以更新

總結

這種方式尤其適合子父組件傳參的情況(子父組件同步更新)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 使用Vant如何實現數據分頁,下拉加載

    使用Vant如何實現數據分頁,下拉加載

    這篇文章主要介紹了使用Vant實現數據分頁及下拉加載方式。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue使用pdfobject實現預覽pdf的示例詳解

    Vue使用pdfobject實現預覽pdf的示例詳解

    PDFObject?是一個?JavaScript?庫用來在HTML中動態(tài)嵌入?PDF?文檔。這篇文章主要為大家詳細介紹了使用pdfobject實現預覽pdf的功能,需要的可以了解一下
    2023-03-03
  • 解決vue項目獲取dom元素寬高總是不準確問題

    解決vue項目獲取dom元素寬高總是不準確問題

    這篇文章主要介紹了解決vue項目獲取dom元素寬高總是不準確問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue實現兩種路由權限控制方式

    Vue實現兩種路由權限控制方式

    路由權限控制常用于后臺管理系統(tǒng)中,對不同業(yè)務人員能夠訪問的頁面進行一個權限的限制。本文主要介紹了兩種Vue 路由權限控制,具有一定的參考價值,感興趣的可以了解一下
    2021-10-10
  • vue3中的ref、reactive問題解析

    vue3中的ref、reactive問題解析

    ref 和 reactive都是vue3推出的針對組合式設計的聲明響應式狀態(tài)的API,兩者在使用之前都要先進行引入,本文通過實例代碼詳解vue3中的ref、reactive問題,感興趣的朋友一起看看吧
    2024-03-03
  • vue-router中query取值的坑及解決

    vue-router中query取值的坑及解決

    這篇文章主要介紹了vue-router中query取值的坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue.js結合bootstrap實現分頁控件

    Vue.js結合bootstrap實現分頁控件

    這篇文章主要為大家詳細介紹了Vue.js 合bootstrap實現分頁控件的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Vue項目打包并發(fā)布的完整步驟記錄

    Vue項目打包并發(fā)布的完整步驟記錄

    在一般情況下,vue項目代碼部署發(fā)布只需將代碼打包后直接上傳到服務器即可,下面這篇文章主要給大家介紹了關于Vue項目打包并發(fā)布的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • vue3響應式Object代理對象的讀取示例詳解

    vue3響應式Object代理對象的讀取示例詳解

    這篇文章主要為大家介紹了vue3響應式Object代理對象的讀取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 詳解vee-validate的使用個人小結

    詳解vee-validate的使用個人小結

    本篇文章主要介紹了詳解vee-validate的使用個人小結,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-06-06

最新評論