亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3父子組件傳值?雙向綁定及注意問題小結(jié)

 更新時間:2022年12月12日 12:33:14   作者:古蘭精  
這篇文章主要介紹了Vue3中如何通過v-model實(shí)現(xiàn)父子組件的雙向數(shù)據(jù)綁定及利用computed簡化父子組件雙向綁定,本文結(jié)合示例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

attribute agruments

vue3父子組件傳值 雙向綁定 及注意事項

http://chabaoo.cn/article/269785.htm 可以參考下

首先注意

父子組件傳值是單項數(shù)據(jù)流,vue3中子組件是不能直接修改父組件數(shù)據(jù)的,vue2中是可以直接使用sync的語法,直接進(jìn)行修改的而sync修飾符的作用則是簡化事件聲明及監(jiān)聽的寫法。

注意事項:

// 父組件
// v-model 沒有指定參數(shù)名時,子組件默認(rèn)參數(shù)名是modelValue
<ChildComp v-model="search" />

(1)子組件也并不是直接拿 props 傳的變量直接用,而是需要聲明一個響應(yīng)式變量 - 通過 ref(props.modelValue) 聲明基于 props 傳的變量值為初始化值的響應(yīng)式數(shù)據(jù)。

(2)且如果父組件傳的是異步數(shù)據(jù)的話,還需要對其進(jìn)行監(jiān)聽。

(3)當(dāng)子組件數(shù)據(jù)改變時需要通過 emit('update:modelValue', e) 去修改父組件數(shù)據(jù)實(shí)現(xiàn)雙向綁定。

舉例子:單個數(shù)據(jù)綁定

<template>
  <div>
    <input v-model="sea" @input="valChange(sea)" />
  </div>
</template>
<script lang="ts">
import { defineComponent, ref, watch } from 'vue'
export default defineComponent({
  name: 'ChildComp',
  props: {
    modelValue: { // 父組件 v-model 沒有指定參數(shù)名,則默認(rèn)是 modelValue
      type: String,
      default: ''
    }
  },
  setup (props, { emit }) {
    // input初始化
    const sea = ref(props.modelValue)
    // 如果父組件傳過來的數(shù)據(jù)是異步獲取的,則需要進(jìn)行監(jiān)聽
    watch(() => props.modelValue, () => { sea.value = props.modelValue })
    // 數(shù)據(jù)雙向綁定
    function valChange (e: string) {
      emit('update:modelValue', e)
    }
    return {
      sea,
      valChange
    }
  }
})
</script>

到這就是,在子組件中可以使用你定義ref來使用修改了,可以使用emit的方法回傳數(shù)據(jù),也可以直接在頁面上直接使用v-model來進(jìn)行雙向數(shù)據(jù)綁定

到此這篇關(guān)于Vue3中如何通過v-model實(shí)現(xiàn)父子組件的雙向數(shù)據(jù)綁定及利用computed簡化父子組件雙向綁定的文章就介紹到這了,更多相關(guān)Vue3父子組件的雙向數(shù)據(jù)綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論