最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 父子組件實(shí)現(xiàn)數(shù)據(jù)雙向綁定效果的兩種方式(案例代碼)

 更新時(shí)間:2022年11月14日 14:41:08   作者:shijialeya.  
本文給大家分享Vue 父子組件實(shí)現(xiàn)數(shù)據(jù)雙向綁定效果的兩種方式,方式一是通過監(jiān)聽事件實(shí)現(xiàn)方式二是通過 v-model 實(shí)現(xiàn),每種方式結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

方式一:通過監(jiān)聽事件實(shí)現(xiàn)

父組件將數(shù)據(jù)傳遞給子組件通過 props 實(shí)現(xiàn);而子組件將數(shù)據(jù)傳遞給父組件通過事件來實(shí)現(xiàn),在子組件中定義一個(gè)事件,在該事件中傳遞值,由父組件中監(jiān)聽這個(gè)事件。通過這種方式實(shí)現(xiàn)父子組件雙向綁定的效果最常見。

子組件案例代碼:

<template>
  <el-select v-model="value" placeholder="請選擇" @change="change">
    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
  </el-select>
</template>

<script>
  export default {
    name: 'sonTest',
    // props 下定義父組件傳遞給子組件的數(shù)據(jù)
    props: {
      // 父組件使用子組件時(shí)通過 :options 傳遞給子組件
      options: {
        type: Array,
        default: []
      }
    },
    data() {
      return {
        value: ''
      }
    },
    methods: {
      change() {
        console.log('子組件下拉框值發(fā)生改變:', this.value)
        // 當(dāng)下拉框中選定的值發(fā)生改變后,通過 $emit 回調(diào) update 事件,并將修改后的值返回給父組件
        this.$emit('update', this.value) // 觸發(fā)父組件的 @update 事件
        // 父組件使用子組件時(shí)通過 @update 指定回調(diào)的處理方法
      }
    }
  }
</script>

<style scoped>

</style>

父組件案例代碼:

<template>
	<son-test :options="options" @update="update"></son-test>
</template>

<script>
  import SonTest from './sonTest'
  export default {
    name: 'fatherTest',
    components: { SonTest },
    data() {
      return {
       	value: '',
        options: [
          { value: '選項(xiàng)1', label: '黃金糕' },
          { value: '選項(xiàng)2', label: '雙皮奶' },
          { value: '選項(xiàng)3', label: '蚵仔煎' },
          { value: '選項(xiàng)4', label: '龍須面' },
          { value: '選項(xiàng)5', label: '北京烤鴨' }
        ],
      }
    },
    methods: {
      update(newValue) {
        // 與 value 實(shí)現(xiàn)雙向綁定效果
        this.value = newValue
        console.log('子組件通過事件傳遞過來的值:', newValue)
      },
    }
  }
</script>
 
<style scoped>

</style> 

優(yōu)點(diǎn):可以實(shí)現(xiàn)父子組件多個(gè)值的雙向綁定效果。

缺點(diǎn):父組件需要編寫監(jiān)聽子組件事件的代碼。

方式二:通過 v-model 實(shí)現(xiàn)

在子組件中指定 model 變量,父組件中通過 v-model 指令來實(shí)現(xiàn)雙向綁定,通過這種方式父組件無需監(jiān)聽子組件的事件。

子組件案例代碼:

<template>
  <el-select v-model="sonValue" placeholder="請選擇">
    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
  </el-select>
</template>

<script>
  export default {
    name: 'sonTest',
    // props 下定義父組件傳遞給子組件的數(shù)據(jù)
    props: {
      // 父組件使用子組件時(shí)通過 :options 傳遞給子組件
      options: {
        type: Array,
        default: []
      },
      value: {
        type: String,
        default: ''
      }
    },
    model: {
      // 需要雙向綁定的 props 變量名稱,也就是父組件通過 v-model 與子組件雙向綁定的變量
      prop: 'value',
      // 定義由 $emit 傳遞變量的名稱
      event: 'newValue'
    },
    data() {
      return {
        // 子組件不能修改 props 下的變量,所以定義一個(gè)臨時(shí)變量
        sonValue: this.value
      }
    },
    watch: {
      // 監(jiān)聽 sonValue 臨時(shí)變量,如果臨時(shí)變量發(fā)生變化,那么通過 $emit 將新的值傳遞給父組件
      sonValue(value) {
        console.log('子組件下拉框值發(fā)生改變:', this.sonValue)
        // 【注意】newValue x需要和 model.event 定義的值一致
        this.$emit('newValue', this.sonValue)
      }
    }
  }
</script>

<style scoped>

</style>

父組件案例代碼:

<template>
	<son-test :options="options" v-model="value"></son-test>
</template>

<script>
  import SonTest from './sonTest'
  export default {
    name: 'fatherTest',
    components: { SonTest },
    data() {
      return {
        value: '選項(xiàng)1',
        options: [
          { value: '選項(xiàng)1', label: '黃金糕' },
          { value: '選項(xiàng)2', label: '雙皮奶' },
          { value: '選項(xiàng)3', label: '蚵仔煎' },
          { value: '選項(xiàng)4', label: '龍須面' },
          { value: '選項(xiàng)5', label: '北京烤鴨' }
        ],
      }
    },
    watch:{
      // 下面這個(gè)監(jiān)聽只是為了打印顯示
      value(newValue){
        console.log('value 值發(fā)生改變:', newValue)
      }
    }
  }
</script>
 
<style scoped>

</style> 

優(yōu)點(diǎn):父組件無需編寫額外的代碼,直接通過 v-model 實(shí)現(xiàn)雙向綁定。

缺點(diǎn):這種方式只能雙向綁定一個(gè)值。

到此這篇關(guān)于Vue 父子組件實(shí)現(xiàn)數(shù)據(jù)雙向綁定效果的兩種方式(案例代碼)的文章就介紹到這了,更多相關(guān)vue父子組件數(shù)據(jù)雙向綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中過濾器filter的講解

    vue中過濾器filter的講解

    今天小編就為大家分享一篇關(guān)于vue中過濾器filter的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • vue輸入框組件開發(fā)過程詳解

    vue輸入框組件開發(fā)過程詳解

    這篇文章主要為大家詳細(xì)介紹了vue輸入框組件開發(fā)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue項(xiàng)目base64字符串轉(zhuǎn)圖片的實(shí)現(xiàn)代碼

    vue項(xiàng)目base64字符串轉(zhuǎn)圖片的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue項(xiàng)目base64字符串轉(zhuǎn)圖片的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Element InputNumber計(jì)數(shù)器的使用方法

    Element InputNumber計(jì)數(shù)器的使用方法

    這篇文章主要介紹了Element InputNumber計(jì)數(shù)器的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue element table表格相同名稱列合并方式

    vue element table表格相同名稱列合并方式

    這篇文章主要介紹了vue element table表格相同名稱列合并方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3+vite+ts使用require.context問題

    vue3+vite+ts使用require.context問題

    這篇文章主要介紹了vue3+vite+ts使用require.context問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue中子組件向父組件傳值以及.sync修飾符詳析

    Vue中子組件向父組件傳值以及.sync修飾符詳析

    .sync?修飾符所提供的功能,當(dāng)一個(gè)子組件改變了一個(gè)prop的值時(shí),這個(gè)變化也會同步到父組件中所綁定,下面這篇文章主要給大家介紹了關(guān)于Vue中子組件向父組件傳值以及.sync修飾符的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Vue Element前端應(yīng)用開發(fā)之用戶管理模塊的處理

    Vue Element前端應(yīng)用開發(fā)之用戶管理模塊的處理

    本篇隨筆以權(quán)限管理模塊中的用戶管理為媒介,進(jìn)行相關(guān)功能的介紹和界面設(shè)計(jì)的處理。
    2021-05-05
  • vue拖拽組件vuedraggable使用說明詳解

    vue拖拽組件vuedraggable使用說明詳解

    這篇文章主要為大家詳細(xì)介紹了vue拖拽組件vuedraggable的使用說明,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue3中ace-editor的簡單使用方法實(shí)例

    vue3中ace-editor的簡單使用方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于vue3中ace-editor簡單使用的相關(guān)資料,ace-editor是一種代碼編輯器,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10

最新評論

澄江县| 平陆县| 东阿县| 东台市| 井陉县| 镶黄旗| 潜山县| 吕梁市| 察哈| 博湖县| 边坝县| 桑日县| 珠海市| 肇庆市| 闵行区| 察哈| 玉门市| 株洲县| 通榆县| 江川县| 高唐县| 扎鲁特旗| 鄂尔多斯市| 浦城县| 嘉义县| 清远市| 高尔夫| 益阳市| 台中市| 凯里市| 抚宁县| 宁都县| 乐至县| 基隆市| 松原市| 三明市| 桂阳县| 聂荣县| 康平县| 长岭县| 杭州市|