優化 一次性全域性元件註冊

2021-10-18 07:47:34 字數 1752 閱讀 5575

"searchtext" @keydown.enter=

"search"

/>

"search"

>

"search"

/>

<

/basebutton>

<

/template>

import basebutton from

'./basebutton'

import baseicon from

'./baseicon'

import baseinput from

'./baseinput'

export

default

}<

/script>

我們寫了一堆基礎ui元件,然後每次我們需要使用這些元件的時候,都得先import,然後宣告components,很繁瑣,這裡可以使用統一註冊的形式.

我們需要借助一下神器webpack,使用 require.context() 方法來建立自己的模組上下文,從而實現自動動態require元件。這個方法需要3個引數:要搜尋的資料夾目錄、是否還應該搜尋它的子目錄、以及乙個匹配檔案的正規表示式。

我們在components資料夾新增乙個叫componentregister.js的檔案,在這個檔案裡借助webpack動態將需要的基礎元件統統打包進來。

/src/components/componentregister.js

import vue from

'vue'

/** * 首字母大寫

* @param str 字串

* @example hehehaha

* @return hehehaha

*/function

capitalizefirstletter

(str)

/** * 對符合'xx/xx.vue'元件格式的元件取元件名

* @param str filename

* @example abc/bcd/def/basictable.vue

* @return basictable

*/function

validatefilename

(str)

const requirecomponent = require.

context

('./'

,true

,/\.vue$/

)// 找到元件資料夾下以.vue命名的檔案,如果檔名為index,那麼取元件中的name作為註冊的元件名

requirecomponent.

keys()

.foreach

(filepath =>

)

這裡資料夾結構:

components

│ componentregister.js

├─basictable

│ basictable.vue

├─multicondition

│ index.vue

這裡對元件名做了判斷,如果是index的話就取元件中的name屬性處理後作為註冊元件名,所以最後註冊的元件為:multi-condition、basic-table

最後我們在main.js中引入:

import 'components/componentregister.js
然後我們就可以隨時隨地使用這些基礎元件,無需手動引入了~

全域性一次性引用寫好的元件

我們寫好了元件,接下去肯定還要引入和使用。但是你寫的元件一旦多起來,在每乙個個地方都需要去引用是一件很麻煩的事情,所以我們將一次性全域性引入 important componenta from componenta important componentb from componentb impor...

一次性成功

沒有人能隨隨便便成功 最近察覺到自己思維的乙個誤區,希望實現的目標第一次就成功,順順利利跳過失敗。這是大家都想要的結局,美好的期望總被現實的波浪所淹沒,因為失敗是避免不了的。一次性成功的想法導致焦慮,困惑,自我懷疑,這個時候如果放低要求換個角度思考,第一次失敗又如何,如果失敗了倒下了哪有怎樣?只要自...

記錄一次效能優化

做了這麼久開發,終於涉及到效能優化了 原因是開啟乙個頁面花了2 6秒,被提了bug 不得不說自己有點小白,嘗試了非同步執行緒和把單次的dubbo查詢優化成批量的查詢。但是這兩種嘗試都沒有宣告成功 出了問題首先要找到問題在 既然是耗時,那就要看看到底 耗時最多 這裡要說一下,因為我是改別人的 所以對業...