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

Vue3中如何自定義雙向綁定

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

1.父組件綁定變化

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

vue3中需要通過v-model指定一個需要綁定的屬性名稱

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

2. 子組件通過props接收

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

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

2)Vue3需要通過update方法可以實現(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)聽
      emit('update:dialogVisible', dialogVisibleData.value);
    };
    // 監(jiān)聽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é)

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

相關(guān)文章

  • Vue3使用indexDB緩存靜態(tài)資源的示例代碼

    Vue3使用indexDB緩存靜態(tài)資源的示例代碼

    IndexedDB 是一個瀏覽器內(nèi)建的數(shù)據(jù)庫,它可以存放對象格式的數(shù)據(jù),默認(rèn)情況下,瀏覽器會將自身所在的硬盤位置剩余容量全部作為indexedDB的存儲容量,本文給大家介紹了Vue3使用indexDB緩存靜態(tài)資源,需要的朋友可以參考下
    2024-10-10
  • vue使用Element的Tree樹形控件實現(xiàn)拖動改變節(jié)點(diǎn)順序方式

    vue使用Element的Tree樹形控件實現(xiàn)拖動改變節(jié)點(diǎn)順序方式

    這篇文章主要介紹了vue使用Element的Tree樹形控件實現(xiàn)拖動改變節(jié)點(diǎn)順序方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Vue中使用event的坑及解決event is not defined

    Vue中使用event的坑及解決event is not defined

    這篇文章主要介紹了Vue中使用event的坑及解決event is not defined,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue中的請求攔截器和響應(yīng)攔截器用法及說明

    Vue中的請求攔截器和響應(yīng)攔截器用法及說明

    這篇文章主要介紹了Vue中的請求攔截器和響應(yīng)攔截器用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue使用v-bind動態(tài)綁定CSS樣式

    Vue使用v-bind動態(tài)綁定CSS樣式

    這篇文章給大家介紹了Vue使用v-bind動態(tài)綁定CSS樣式,文中有相關(guān)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • vue3.0找不到模塊“./App.vue”或其相應(yīng)的類型聲明(多種情況分析)

    vue3.0找不到模塊“./App.vue”或其相應(yīng)的類型聲明(多種情況分析)

    這篇文章主要介紹了vue3.0找不到模塊“./App.vue”或其相應(yīng)的類型聲明,報錯原因是typescript?只能理解?.ts?文件,無法理解?.vue文件,本文通過多種情況分析給大家詳細(xì)講解,需要的朋友可以參考下
    2023-01-01
  • element-ui中Table表格省市區(qū)合并單元格的方法實現(xiàn)

    element-ui中Table表格省市區(qū)合并單元格的方法實現(xiàn)

    這篇文章主要介紹了element-ui中Table表格省市區(qū)合并單元格的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue.config.js打包優(yōu)化配置

    vue.config.js打包優(yōu)化配置

    這篇文章主要介紹了vue.config.js打包優(yōu)化配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Vue?全部生命周期組件梳理整理

    Vue?全部生命周期組件梳理整理

    這篇文章主要介紹了Vue?全部生命周期組件梳理整理,在創(chuàng)建組件之前使用;在實例初始化之后,進(jìn)行數(shù)據(jù)偵聽和事件,偵聽器的配置之前同步調(diào)用
    2022-06-06
  • Vue3+Vite4項目進(jìn)行性能優(yōu)化的配置方案

    Vue3+Vite4項目進(jìn)行性能優(yōu)化的配置方案

    這篇文章主要為大家詳細(xì)介紹了Vue3如何結(jié)合Vite4對項目進(jìn)行性能優(yōu)化的相關(guān)配置,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評論