溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue中怎么封裝一個自動化注冊全局組件

發(fā)布時間:2021-11-19 09:02:41 來源:億速云 閱讀:204 作者:iii 欄目:編程語言

這篇文章主要介紹“Vue中怎么封裝一個自動化注冊全局組件”,在日常操作中,相信很多人在Vue中怎么封裝一個自動化注冊全局組件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Vue中怎么封裝一個自動化注冊全局組件”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Vue中怎么封裝一個自動化注冊全局組件

在項目的開發(fā)過程中,我們常常會去封裝一些比較常用的全局組件, 但是每添加一個組件就需要手動在main.js引入注冊,不僅麻煩還代碼量多,著實讓人心煩。 所以干脆封裝一個自動化注冊全局組件。

1、自定義全局組件文件夾

在src下新建一個globalComponents,用于存放全局組件,并新建一個組件,例如Orange;

Vue中怎么封裝一個自動化注冊全局組件

2、組件自動注冊配置文件

globalComponents中創(chuàng)建一個index.js,用來查找全部組件并自動注冊

// 自動注冊全局組件,每次新增組件必須重新編譯
import Vue from 'vue'

const requireComponent = require.context(
  '../globalComponents', // 其組件目錄的相對路徑
  true, // 是否查詢其子目錄
  /\.vue$/ // 匹配基礎(chǔ)組件文件名的正則表達式
)
requireComponent.keys().forEach(fileName => {
  const componentConfig = requireComponent(fileName); // 獲取組件配置
  /**
   * 兼容 import export 和 require module.export 兩種規(guī)范
   */
  // 如果這個組件選項是通過 export default 導(dǎo)出的,就會優(yōu)先使用 .default
  const comp = componentConfig.default || componentConfig; 
  Vue.component(comp.name, comp) // 此處的name是組件屬性定義的name
})

3、編輯Orange/index.vue

組件最重要的是組件屬性定義的name(name為自動注冊的組件名)

<template>
  <div class="wrapper">
    Orange
  </div>
</template>

<script>
export default {
  name: 'Orange', // 此處的name屬性值將為后面使用的組件名 <orange />,需唯一
  components: {},
  props: {},
  data() {
    return {}
  },
  created() {},
  mounted() {},
  methods: {}
}
</script>

4、入口文件main.js中導(dǎo)入globalComponents/index.js

// main.js

import Vue from 'vue'
// 自動注冊全局組件
import './globalComponents/index.js'
  • 基本完成以上幾步就大功告成了,后面就是可以直接使用這個全局組件了~

  • 使用方法:

<template>
  <div class="wrapper">
    <!-- 自動注冊的全局組件 -->
    <orange />
  </div>
</template>

到此,關(guān)于“Vue中怎么封裝一個自動化注冊全局組件”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI