首頁 web前端 Vue.js 聊聊vue3中的name屬性,看看怎麼使用!

聊聊vue3中的name屬性,看看怎麼使用!

Sep 14, 2022 pm 07:42 PM
vue vue.js vue3

如果你在 vue3 開發中使用了 <script setup> 語法的話,對於元件的 name 屬性,需要做一番額外的處理。以下這篇文章就來和大家聊聊vue3 name 屬性的使用技巧,希望對大家有幫助!

聊聊vue3中的name屬性,看看怎麼使用!

對於vue@3.2.34 及以上版本,在使用<script setup> 的單一檔案元件時,vue 會根據元件檔名,自動推導出name 屬性。也就是名為 MyComponent.vue 或 my-component.vue 的文件, name 屬性為 MyComponent,而當你在元件內顯示定義 name 屬性時,會覆寫推導出的名稱。 【相關推薦:vuejs影片教學

元件的name 屬性不僅能用於<KeepAlive>,而且在使用vuejs- devtools 外掛程式偵錯程式碼的時候,對應元件也能顯示出其name 屬性,方便我們快速定位程式碼和偵錯。顯示的定義 name 屬性,是個好習慣。

除此之外,如果我們要在<script setup> 顯示定義name 屬性,需要額外新增一個script,也就是:

1

2

3

4

5

6

7

8

9

<script>

  export default {

    name: "MyComponent"

  }

</script>

 

<script setup>

...

<script>

登入後複製

稍微繁瑣,對此社群推出了unplugin-vue-define-options 來簡化該操作。

使用步驟非常簡單:

1、安裝

1

npm i unplugin-vue-define-options -D

登入後複製

2、設定vite

1

2

3

4

5

6

7

// vite.config.ts

import DefineOptions from 'unplugin-vue-define-options/vite'

import Vue from '@vitejs/plugin-vue'

 

export default defineConfig({

  plugins: [Vue(), DefineOptions()],

})

登入後複製

3、使用typescript 開發的話,需要設定typescript 支援

1

2

3

4

5

6

7

// tsconfig.json

{

  "compilerOptions": {

    // ...

    "types": ["unplugin-vue-define-options/macros-global" /* ... */]

  }

}

登入後複製

安裝設定完成後,就能使用其提供的defineOptions API 來定義name 屬性。

1

2

3

4

5

<script setup>

defineOptions({

  name: "MyComponent"  

})

<script>

登入後複製

那麼它是如何做到這一點的呢?

對於使用了defineOptions 的程式碼:

1

2

3

4

5

6

7

8

9

<script setup>

import { useSlots } from 'vue'

   

defineOptions({

  name: 'Foo',

  inheritAttrs: false,

})

const slots = useSlots()

</script>

登入後複製

#編譯後輸出為:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<script>

export default {

  name: 'Foo',

  inheritAttrs: false,

  props: {

    msg: { type: String, default'bar' },

  },

  emits: ['change''update'],

}

</script>

 

<script setup>

const slots = useSlots()

</script>

登入後複製

可以發現,這和我們在上文中書寫2 個script 標籤是一樣的,也就是說,unplugin-vue-define-options 透過vite 插件的方式,在編譯階段幫我們做了寫2 個script 這一步,簡化了我們的開發。

(學習影片分享:web前端開發程式設計基礎影片

以上是聊聊vue3中的name屬性,看看怎麼使用!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中echarts怎麼用 vue中echarts怎麼用 May 09, 2024 pm 04:24 PM

vue中echarts怎麼用

vue中的export default的作用 vue中的export default的作用 May 09, 2024 pm 06:48 PM

vue中的export default的作用

vue中map函數的用法 vue中map函數的用法 May 09, 2024 pm 06:54 PM

vue中map函數的用法

vue中event和$event區別 vue中event和$event區別 May 08, 2024 pm 04:42 PM

vue中event和$event區別

vue中onmounted作用 vue中onmounted作用 May 09, 2024 pm 02:51 PM

vue中onmounted作用

vue中export與export default區別 vue中export與export default區別 May 08, 2024 pm 05:27 PM

vue中export與export default區別

vue中的鉤子是什麼 vue中的鉤子是什麼 May 09, 2024 pm 06:33 PM

vue中的鉤子是什麼

vue中的onmounted對應react哪個生命週期 vue中的onmounted對應react哪個生命週期 May 09, 2024 pm 01:42 PM

vue中的onmounted對應react哪個生命週期

See all articles