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

淺談Vue3 父子傳值

 更新時(shí)間:2021年10月13日 15:37:10   作者:未飛  
這篇文章主要介紹了基于Vue中的父子傳值問題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

父?jìng)髯樱?/h2>

1、 在父組件的子組件標(biāo)簽上通過 :傳遞到子組件的數(shù)據(jù)名="需要傳遞的數(shù)據(jù)"

在這里為了大家區(qū)分我將父組件中的數(shù)據(jù)定義為 : fatherData  ,

子組件需要接收的數(shù)據(jù)定義為: sonData 。

// 父組件
<template>
  <div class="about">
    {{fatherData}}
    <!-- 父?jìng)髯?-->
    <!-- 1、 在父組件的子組件標(biāo)簽上通過 :傳遞到子組件的數(shù)據(jù)名="需要傳遞的數(shù)據(jù)" -->
    <children :sonData="fatherData"></children>
  </div>
</template>
 
<script>
import children from "@/components/children"
import { defineComponent,reactive,toRefs } from "vue";
export default defineComponent({
  components:{
    children,
  },
name:"about",
setup(){
  const state = reactive({
    fatherData:"hello"
  })
  return {
    ...toRefs(state)
  }
}
 
})
</script>

2、子組件依舊通過 props 來接收并且在模版中使用

那么大多數(shù)情況下都會(huì)去通過父組件傳遞到子組件中的數(shù)據(jù),根據(jù)這個(gè)數(shù)據(jù)去做一些特定的功能或者請(qǐng)求數(shù)據(jù)等等。

在 setup 鉤子中第一個(gè)參數(shù) props 就可以訪問到父組件傳遞的數(shù)據(jù),那么在函數(shù)中也是通過:  props.父組件傳遞數(shù)據(jù)的名稱   來操作該數(shù)據(jù)。

setup函數(shù)接收props作為其第一個(gè)參數(shù),props對(duì)象是響應(yīng)式的(單向的父—>子),watchEffect或watch會(huì)觀察和響應(yīng)props的更新。不要對(duì)props對(duì)象進(jìn)行解構(gòu),那樣會(huì)失去響應(yīng)性。在開發(fā)過程中,props對(duì)象對(duì)用戶空間代碼時(shí)不可變的,用戶嘗試修改props時(shí)會(huì)觸發(fā)警告。

// 子組件
<template>
  <div class="children">
    <!-- 3、在子組件模版中使用 -->
    {{sonData}}
  </div>
</template>
<script>
export default {
name:"Children",
// 2、子組件通過 props 來接收
  props:["sonData"],
  setup(props){
    function childrenbut(){
      // props.sonData  可以訪問到父組件傳遞的數(shù)據(jù)
      console.log(props.sonData);
    }
    return {
      childrenbut
    }
  }
}
</script>

子傳父:

1、子組件觸發(fā)事件通過 setup 的第二個(gè)參數(shù) context.emit 來實(shí)現(xiàn)子傳父 

context 上下文對(duì)象。

// 子組件
<template>
  <div class="children">
    {{sonData}}
    <!-- 1、觸發(fā)事件 -->
    <button @click="childrenbut">子組件按鈕</button>
  </div>
</template>
<script>
export default {
name:"Children",
  setup(props,context){
    function childrenbut(){
      console.log(context);
      // 2、通過context.emit 實(shí)現(xiàn)子傳父
      // 第一個(gè)參數(shù)為 方法名,第二個(gè)參數(shù)為 需要傳遞的數(shù)據(jù)
      context.emit("change",'world')
    }
    return {
      childrenbut,
    }
  }
}
</script>

context 也可以使用結(jié)構(gòu)的形式這樣寫

// 子組件
<script>
export default {
name:"Children",
  // 通過結(jié)構(gòu) 之后直接寫 emit {emit}
  setup(props,{emit}){
    function childrenbut(){
      // 省去 context.emit
      emit("change",'world')
    }
    return {
      childrenbut,
    }
  }
}
</script>

總結(jié)

在 vue3 中無論是父?jìng)髯舆€是子傳父其實(shí)與 vue2 中都相差無幾,

思想大多一樣,不一樣的是 vue3 需要通過調(diào)用各種各樣的鉤子來實(shí)現(xiàn)傳參

相關(guān)文章

  • 一文教你如何在Vue項(xiàng)目中使用Emoji表情

    一文教你如何在Vue項(xiàng)目中使用Emoji表情

    這篇文章主要為大家詳細(xì)介紹了在vue項(xiàng)目中如何使用emoji表情,包括font-awesome圖標(biāo),v-emoji-picker,vue-emoji等emoji表情庫(kù),需要的可以參考下
    2025-03-03
  • 一文詳析vue3?Props的用法(父?jìng)髯?

    一文詳析vue3?Props的用法(父?jìng)髯?

    這篇文章主要給大家介紹了關(guān)于vue3?Props的用法(父?jìng)髯?的相關(guān)資料,在Vue3中Props用于組件間數(shù)據(jù)傳遞,允許類型檢查和默認(rèn)值設(shè)置,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • 巧妙運(yùn)用v-model實(shí)現(xiàn)父子組件傳值的方法示例

    巧妙運(yùn)用v-model實(shí)現(xiàn)父子組件傳值的方法示例

    這篇文章主要介紹了巧妙運(yùn)用v-model實(shí)現(xiàn)父子組件傳值的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • 一文帶你搞懂Vue3中的各種ref的使用

    一文帶你搞懂Vue3中的各種ref的使用

    在?Vue3?中,有許多與響應(yīng)式相關(guān)的函數(shù),例如?toRef、toRefs、isRef、unref?等等,本文將詳細(xì)介紹這些函數(shù)的用法,讓我們?cè)趯?shí)際開發(fā)中知道應(yīng)該使用哪些?API?并能夠熟練地回答面試官的相關(guān)問題
    2023-08-08
  • vue多級(jí)多選菜單組件開發(fā)

    vue多級(jí)多選菜單組件開發(fā)

    這篇文章主要為大家分享了vue多級(jí)多選菜單組件開發(fā)案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn)

    搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn)

    這篇文章主要介紹了搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue CLI3 開啟gzip壓縮文件的方式

    Vue CLI3 開啟gzip壓縮文件的方式

    gizp壓縮是一種http請(qǐng)求優(yōu)化方式,通過減少文件體積來提高加載速度。這篇文章主要介紹了Vue CLI3 開啟gzip壓縮,需要的朋友可以參考下
    2018-09-09
  • 基于vue實(shí)現(xiàn)8小時(shí)帶刻度的時(shí)間軸根據(jù)當(dāng)前時(shí)間實(shí)時(shí)定位功能

    基于vue實(shí)現(xiàn)8小時(shí)帶刻度的時(shí)間軸根據(jù)當(dāng)前時(shí)間實(shí)時(shí)定位功能

    這篇文章主要介紹了基于vue實(shí)現(xiàn)8小時(shí)帶刻度的時(shí)間軸根據(jù)當(dāng)前時(shí)間實(shí)時(shí)定位功能,開始時(shí)間、結(jié)束時(shí)間可配置,根據(jù)當(dāng)前時(shí)間初始化位置,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue中push()和splice()的使用解析

    vue中push()和splice()的使用解析

    這篇文章主要介紹了vue中push()和splice()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue實(shí)現(xiàn)搜索小功能

    vue實(shí)現(xiàn)搜索小功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)搜索小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論

微博| 鲁甸县| 黑山县| 交口县| 垫江县| 北票市| 色达县| 固阳县| 乌审旗| 平果县| 隆昌县| 武义县| 柘荣县| 乃东县| 和龙市| 黔江区| 高雄市| 集贤县| 平原县| 兴义市| 霞浦县| 乐清市| 台安县| 中宁县| 精河县| 肃宁县| 河东区| 遵义市| 班玛县| 石门县| 信阳市| 文登市| 富锦市| 嵊泗县| 南岸区| 临西县| 岳普湖县| 基隆市| 唐河县| 安西县| 台州市|