우아한 관리 Vue 글로벌 구성 요소 자동 등록 및 플러그인 자동 도입 기록
3750 단어 vue.js
main.js
에 넣는 사람들이 있을 수 있습니다. 그래서 뒷부분main.js
에 코드를 많이 넣어서 난잡하고 후반 유지보수에 불리하기 때문에 가능한 한 main.js
을 깔끔하게 보이도록 하겠습니다.여기에는 webpack
의 require.context
기능을 사용하여 Vue에서 전역 구성 요소와 플러그인을 자동으로 등록하고 전역 구성 요소와 플러그인 관리를 편리하게 합니다.전역 플러그인 관리
1. 프로젝트에 새
plugins
디렉터리를 만들고 components
디렉터리와 같은 등급을 유지한다.2. plugins
디렉터리에 새로 만들기index.js
, 도입element-ui
을 예로 들면: 3. 다시 plugins
디렉터리에 새로 만들기element.js
, 공식 인용 방법에 쓰기(수요에 따라 도입하는 문제를 고려하지 않음)import Vue from 'vue'
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(Element, {
size: 'small'
})
4.index.js
에 도입element.js
import './element'
5. main.js
에 도입된 plugins
에 도입된 index.js
import Vue from 'vue'
import App from './App.vue'
// , router store 。
import './plugins/index'
import router from './router'
import store from './store'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
이렇게 하면 main.js
보기에 훨씬 시원해 보인다. 뒤에 새로 추가된 플러그인이 있다. 플러그인 디렉터리에 해당하는 플러그인 이름을 새로 만들고 index.js
에 도입하면 된다. 아무리 많은 플러그인도 쉽게 유지보수할 수 있다.글로벌 구성 요소 자동 등록
홈페이지 문서 참조: 클릭하여 1로 이동, 먼저 설치
lodash
npm install i lodash
2. components
디렉터리에 새로 만들기globals
디렉터리를 만들고 그 다음에 전역적으로 등록해야 하는 구성 요소를 모두 이 안에 넣는다. 3. plugins
목록에 새로 만들기auto-regist.js
(파일 이름은 마음대로 쓸 수 있다)import Vue from 'vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'
const requireComponent = require.context(
//
'../components/globals',
//
true,
//
/\w+\.vue$/
)
requireComponent.keys().forEach(fileName => {
//
const componentConfig = requireComponent(fileName)
// PascalCase
const componentName = upperFirst(
camelCase(
//
fileName
.split('/')
.pop()
.replace(/\.\w+$/, '')
)
)
//
Vue.component(
componentName,
// `export default` ,
// `.default`,
// 。
componentConfig.default || componentConfig
)
})
4.plugins
중index.js
도입import './auto-regist'
import './element'
마지막으로 components/globals
에 테스트 구성 요소를 넣고 테스트를 진행할 수 있습니다.세련된 로드 플러그인
매번
plugins
에 플러그인을 추가한 후에 index.js
에서 인용해야 한다. 만약에 이런 플러그인이 100개가 있다면 우리는 100개를 써야 한다. 여기에 필요한 것은 전역 구성 요소와 마찬가지로 index.js
에 자동으로 도입plugins
된 플러그인은 원리가 상단
과 유사하다.변경된 코드index.js
:const requirePlugin = require.context(
// plugins
'/',
//
false,
// plugins js
/.+\.js$/
)
requirePlugin.keys().forEach(fileName => {
requirePlugin(fileName)
})
이렇게 하면 도입 plugins
의 모든 플러그인을 자동으로 불러올 수 있다.그러나 이렇게 하면 플러그인 도입 순서 문제가 존재할 수 있다. 웹 패키지는 폴더에 있는 파일의 위치에 따라 정렬된 것이기 때문이다. 만약에 A, B, C 세 개의 플러그인이 있다면 A플러그인은 B플러그인이 제공하는 어떤 기능을 사용해야 한다. 이런 상황에서 A플러그인이 먼저 인용되고 B가 나중에 인용되어 A플러그인 코드가 잘못된 상황을 보고하게 된다. 여기서 교묘한 방법으로 A,B 플러그인은 다음과 같은 형식으로 명명됩니다: a-2-A.js
, a-1-B.js
. 이렇게 하면 B 플러그인은 앞에서 우선적으로 불러옵니다.의존 관계가 존재하지 않는다면, 마음대로 할 수 있다.디렉토리 구성도
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[백견불여일타/Vue.js] 4장 - 입력 폼 데이터 가져오기v-model 데이터 입력 select 지난 장에서는 v-bind를 이용해서 HTML 태그 속성 값을 Vue로 다루는 법을 배웠습니다. 이번에는 사용자가 입력한 데이터를 Vue로 가져오는 법에 대해 다룹니다. 웹 페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.