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

Vue3中如何自定義雙向綁定

 更新時(shí)間:2023年11月16日 09:01:43   作者:青顏的天空  
這篇文章主要介紹了Vue3中如何自定義雙向綁定問(wèn)題,具有很好的參考價(jià)價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.父組件綁定變化

vue2中父組件通過(guò)v-model綁定,子組件默認(rèn)接收一個(gè)value屬性

vue3中需要通過(guò)v-model指定一個(gè)需要綁定的屬性名稱

   <!-- 通過(guò):后面指定子組件接收的props名稱 -->
   <AddBook v-model:dialogVisible="addFormVisible"></AddBook>

2. 子組件通過(guò)props接收

然后在setup函數(shù)中,通過(guò)watch監(jiān)聽(tīng),定義一個(gè)中間變量。

1)emits:Vue3新增屬性,定義子組件通過(guò)emit傳遞給父組件的事件名稱,以及通過(guò)事件傳遞的參數(shù)

2)Vue3需要通過(guò)update方法可以實(shí)現(xiàn)雙向綁定

<template>
  <el-dialog class="add-book-dialog" :title="target && target._id ? '編輯賬本': '添加賬本'"
             :close-on-click-modal="false"
             v-model="dialogVisibleData">
    <el-form :model="targetForm" :rules="rules" ref="bookForm">
     ...
    </el-form>
    <template #footer>
    <span class="dialog-footer">
      <el-button @click="cancel">取 消</el-button>
      <el-button type="primary" @click="save">確 定</el-button>
    </span>
    </template>
  </el-dialog>
</template>

<script lang="ts">
import { reactive, ref, watch, toRefs, readonly, defineComponent } from 'vue';

export default defineComponent({
  // 觸發(fā)的事件的名稱
  emits: {
    'update:dialogVisible': (val: boolean) => {
      return val;
    }
  },
  props: {
   ...
    dialogVisible: { // 是否顯示模態(tài)框
      type: Boolean,
      default: false
    },
  },
  setup(props, { emit }) {
    const { dialogVisible } = toRefs(props) as any;
    let dialogVisibleData = ref(false);
    const cancel = () => {
      dialogVisibleData.value = false;
      // 可以直接emit update事件,也可以改變dialogVisibleData value值,觸發(fā)watch監(jiān)聽(tīng)
      emit('update:dialogVisible', dialogVisibleData.value);
    };
    // 監(jiān)聽(tīng)props中dialogVisible值
    watch(() => dialogVisible.value, (newValue: boolean, oldValue: boolean) => {
      dialogVisibleData.value = newValue;
      console.log(oldValue, newValue, '改變');
    });
    watch(() => dialogVisibleData.value, (newVal: boolean, oldVal: boolean) => {
      emit('update:dialogVisible', newVal);
    });
    return { dialogVisibleData, cancel };
  },
});
</script>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 7個(gè)適用于Vue?3的高顏值UI組件庫(kù)

    7個(gè)適用于Vue?3的高顏值UI組件庫(kù)

    這篇文章主要給大家分享介紹了7個(gè)適用于Vue?3的高顏值UI組件庫(kù),合理利用,又或者學(xué)習(xí)借鑒都是不錯(cuò)的選擇,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 快速解決 keep-alive 緩存組件中定時(shí)器干擾問(wèn)題

    快速解決 keep-alive 緩存組件中定時(shí)器干擾問(wèn)題

    文章介紹了在使用keep-alive緩存組件時(shí),如何在組件被緩存后清理定時(shí)器以避免干擾其他組件的邏輯,通過(guò)在deactivated鉤子中清理定時(shí)器,可以確保組件被緩存時(shí)不會(huì)繼續(xù)運(yùn)行定時(shí)器,感興趣的朋友一起看看吧
    2025-02-02
  • vue前端框架—Mint UI詳解(更適用于移動(dòng)端)

    vue前端框架—Mint UI詳解(更適用于移動(dòng)端)

    這篇文章主要介紹了vue前端框架—Mint UI的詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue中的v-model 和 :value 深度解析

    Vue中的v-model 和 :value 深度解析

    本文詳細(xì)解析了Vue中的v-model和:value兩種綁定方式的區(qū)別、使用場(chǎng)景以及最佳實(shí)踐,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2026-01-01
  • vue2.0 獲取從http接口中獲取數(shù)據(jù),組件開(kāi)發(fā),路由配置方式

    vue2.0 獲取從http接口中獲取數(shù)據(jù),組件開(kāi)發(fā),路由配置方式

    今天小編就為大家分享一篇vue2.0 獲取從http接口中獲取數(shù)據(jù),組件開(kāi)發(fā),路由配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決方案

    ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決方案

    這篇文章主要給大家介紹了關(guān)于ResizeObserver?loop?limit?exceeded報(bào)錯(cuò)原因及解決的相關(guān)資料,公司項(xiàng)目監(jiān)聽(tīng)系統(tǒng)中發(fā)現(xiàn)一個(gè)高頻錯(cuò)誤ResizeObserver loop limit exceeded,而瀏覽器的console中卻沒(méi)有提示,需要的朋友可以參考下
    2023-09-09
  • Ant Design Vue Table組件合并單元格方式

    Ant Design Vue Table組件合并單元格方式

    這篇文章主要介紹了Ant Design Vue Table組件合并單元格方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解Vue 開(kāi)發(fā)模式下跨域問(wèn)題

    詳解Vue 開(kāi)發(fā)模式下跨域問(wèn)題

    本篇文章主要介紹了Vue 開(kāi)發(fā)模式下跨域問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • elementui 開(kāi)始結(jié)束時(shí)間可以選擇同一天不同時(shí)間段的實(shí)現(xiàn)代碼

    elementui 開(kāi)始結(jié)束時(shí)間可以選擇同一天不同時(shí)間段的實(shí)現(xiàn)代碼

    這篇文章主要介紹了elementui 開(kāi)始結(jié)束時(shí)間可以選擇同一天不同時(shí)間段的實(shí)現(xiàn)代碼,需要先在main.js中導(dǎo)入相應(yīng)代碼,代碼簡(jiǎn)單易懂,需要的朋友可以參考下
    2024-02-02
  • 對(duì)Vue beforeRouteEnter 的next執(zhí)行時(shí)機(jī)詳解

    對(duì)Vue beforeRouteEnter 的next執(zhí)行時(shí)機(jī)詳解

    今天小編就為大家分享一篇對(duì)Vue beforeRouteEnter 的next執(zhí)行時(shí)機(jī)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

通江县| 叙永县| 宁武县| 新民市| 乾安县| 中卫市| 英德市| 措美县| 兴安盟| 手游| 宣武区| 嘉义县| 兴业县| 南宁市| 西青区| 罗江县| 滨海县| 兰州市| 吐鲁番市| 宁波市| 泾川县| 宜君县| 连城县| 上饶县| 全南县| 永顺县| 禹城市| 明水县| 蒲江县| 汽车| 仁怀市| 康保县| 黄山市| 县级市| 和平县| 德安县| 防城港市| 兴安盟| 靖安县| 封丘县| 花莲县|