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

vue3編寫組件的幾種實現(xiàn)方式

 更新時間:2023年06月30日 09:19:06   作者:lethe_R  
這篇文章主要介紹了vue3編寫組件的幾種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、選項式寫法

在 vue2.x 項目中使用的寫法就是選項API的寫法

(說明:類似于與vue2中的data里面寫的是定義的數(shù)據(jù),methods里面寫的是處理數(shù)據(jù)的方法,每一個選項都只負責自己的部分)

  • 優(yōu)點:易于學習,代碼位置固定,便于閱讀;
  • 缺點:代碼組織性差,相似的邏輯代碼不便于復用;

vue3的選項式寫法中也可以有vue2的寫法

如果是新項目,應只選擇vue3的寫法(這里指vue3的項目)

代碼如下:

<template>
  <div>
    <div>
      num3: {{ num3 }}
    </div>
    <div>
      num2: {{ num2 }}
    </div>
  </div>
</template>
// 類似于vue2中,data中定義數(shù)據(jù),methods就寫方法,每一個選項就寫對應所負責的東西
<script>
import { ref } from "vue";
export default {
  // vue3代碼
  props: {
    testProps: {
      type: Number,
      default: () => {
        return 123456;
      },
    },
  }, // 接收傳過來的數(shù)據(jù)
  setup(props, context) {
    console.log("setup的props", props); // 父組件傳遞過來的數(shù)據(jù),但是前提是需要在props進行數(shù)據(jù)的接收,否則無法使用
    console.log("testProps", props.testProps); // 123456
    console.log("setup的context", context);
    const num3 = ref(1);
    const addV3 = () => {
      num3.value++;
    };
    return { num3, addV3 }; // 使用選項式寫法這里必須將數(shù)據(jù)return出去
  },
  // vue2代碼
  data() {
    return {
      num2: 456,
    };
  },
  methods: {
    addV2() {
      this.num2++; // 這里面是可以使用this的,但是setup中不可以使用this
    },
  },
  mounted() {},
};
</script>

二、組合式寫法

組合式寫法(vue3特有的寫法)

  • 優(yōu)點:一個功能邏輯的代碼組織寫在一起的,便于閱讀和維護;
  • 缺點:需要有良好的代碼組織能力和拆分邏輯能力;

說明:使用選項式的寫法寫vue3里面可以有vue2的代碼,但是如果采用vue3語法糖的寫法里面是不能有vue2的寫法的;

<template>
  <div>
    <div>
      num: {{ num }}
    </div>
    <div>
      comValue: {{ comValue }}
    </div>
  </div>
</template>
// 組合式寫法
<script setup> // vue3的語法糖
import { computed, ref } from "vue";
const num = ref(123);
const comValue = computed(() => {
  return num.value = num.value + 1;
})
const add = () => {
    num.value++ // 使用ref定義的值需要使用點value的形式進行取值
}
console.log(comValue.value); // 124
</script>

三、JSX寫法

使用defineComponent來書寫組件的代碼

<template>
  <div>
    <div>
      num: {{ num }}
    </div>
  </div>
</template>
<script>
import { defineComponent, ref } from "vue";
// 在defineComponent使用vue3+vue2寫法
export default defineComponent({
  setup() {
    const num = ref(12);
    return {
      num
    }
  },
  data() {
    return { count: 1 }
  },
  methods: {
    increment() {
      this.count++;
    }
  }
})
// 直接在defineComponent使用vue3寫法
// export default defineComponent(() =>{
//   const count = ref(0)
//   return { count }
// })
</script>

總結

雖然vue3出來也有一段時間了,但是很多項目還是用的vue2,我覺得我們也應該慢慢的去使用vue3了,從vue2到vue3的過渡,要養(yǎng)成一個良好的編碼習慣;建議使用vue3組合式的語法糖寫法。

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

相關文章

  • Vue3.0插件執(zhí)行原理與實戰(zhàn)

    Vue3.0插件執(zhí)行原理與實戰(zhàn)

    這篇文章主要介紹了Vue3.0插件執(zhí)行原理與實戰(zhàn),Vue項目能夠使用很多插件來豐富自己的功能Vue-Router、Vuex等,節(jié)省了我們大量的人力和物力,下面我們就一起來了解Vue3.0插件的原理吧,需要的小伙伴可以參考一下
    2022-02-02
  • vue elementui select標簽監(jiān)聽change事件失效問題

    vue elementui select標簽監(jiān)聽change事件失效問題

    這篇文章主要介紹了vue elementui select標簽監(jiān)聽change事件失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue模板語法中數(shù)據(jù)綁定的實例代碼

    Vue模板語法中數(shù)據(jù)綁定的實例代碼

    這篇文章主要介紹了Vue模板語法中數(shù)據(jù)綁定的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • Vue指令之v-for的使用說明

    Vue指令之v-for的使用說明

    這篇文章主要介紹了Vue指令之v-for的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue如何解決每次發(fā)版都要強刷清除瀏覽器緩存問題

    Vue如何解決每次發(fā)版都要強刷清除瀏覽器緩存問題

    這篇文章主要介紹了Vue如何解決每次發(fā)版都要強刷清除瀏覽器緩存問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue中父組件控制子組件的顯示隱藏詳解

    vue中父組件控制子組件的顯示隱藏詳解

    文章介紹了在Vue.js中實現(xiàn)父子組件之間通信的一種方法,通過在子組件內部定義一個`show`方法,并在父組件調用該方法時傳入相應的參數(shù)來控制子組件的顯示和隱藏,這種方法避免了使用props和emit,使子組件的顯示邏輯更加獨立和清晰
    2025-10-10
  • Vue使用v-model封裝el-pagination組件的全過程

    Vue使用v-model封裝el-pagination組件的全過程

    通過封裝el-pagination組件開發(fā)自定義分頁組件的類似文章網(wǎng)上已經(jīng)有很多了,但看了一圈,總是不如意,于是決定還是自己動手搞一個,對v-model封裝el-pagination組件相關知識感興趣的朋友一起看看吧
    2021-07-07
  • Vue中實現(xiàn)深度監(jiān)聽的方法小結

    Vue中實現(xiàn)深度監(jiān)聽的方法小結

    在Vue中,深度監(jiān)聽是一種非常常見且重要的功能,它可以讓我們監(jiān)聽對象內部的所有屬性,并對這些屬性的變化做出相應的處理,在本篇博客中,我將為大家介紹Vue中如何實現(xiàn)深度監(jiān)聽的方法,需要的朋友可以參考下
    2024-09-09
  • 詳解Vue中router-view組件的使用

    詳解Vue中router-view組件的使用

    router-view組件作為vue最核心的路由管理組件,在項目中作為路由管理經(jīng)常被使用到,所以下面小編就來和大家詳細聊聊router-view組件的具體使用方法,希望對大家有所幫助
    2023-06-06
  • Vue中使用echarts實現(xiàn)繪制人體動態(tài)圖

    Vue中使用echarts實現(xiàn)繪制人體動態(tài)圖

    這篇文章主要為大家詳細介紹了Vue中如何使用echarts實現(xiàn)繪制人體動態(tài)圖,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03

最新評論

台北县| 桂林市| 张家界市| 阜宁县| 海口市| 景泰县| 左权县| 额尔古纳市| 屏山县| 柳州市| 厦门市| 奉化市| 河东区| 南充市| 临沂市| 安平县| 昂仁县| 边坝县| 贵定县| 舞钢市| 平乡县| 房山区| 麦盖提县| 德格县| 新余市| 漾濞| 应城市| 沙坪坝区| 蛟河市| 墨脱县| 盖州市| 施甸县| 宁河县| 博爱县| 邛崃市| 车致| 安岳县| 满城县| 普陀区| 南乐县| 古蔺县|