vue引入組件的幾種方法代碼示例
一、常用的局部引入
<template>
<div>
<!--3.使用組件-->
<Button></Button>
</div>
</template>
<script>
// 1. 引入組件
import Button from '../view/button.vue'
export default {
// 2. 注冊組件
components: {
Button,
}
}
</script>總結: 在哪個頁面需要就在那個頁面引入、注冊、使用
二、創(chuàng)建一個js 進行統(tǒng)一注冊 然后在main.js引入統(tǒng)一管理的js文件實現(xiàn)全局注冊
1、global.js統(tǒng)一注冊管理:
// 1.引入vue import Vue from 'vue' import Child1 from './child1' import Child2 from './child1' import Child3 from './child1' import Child4 from './child1' import Child5 from './child1' Vue.component(Child1) Vue.component(Child2) Vue.component(Child3) Vue.component(Child4) Vue.component(Child5)
2、在main.js中引入 global.js實現(xiàn)全局注冊
優(yōu)點: 減少每個頁面引入的繁瑣步驟 、減少了每一頁面重復引入的代碼,
缺點: 有90%的代碼都是重復的
三、自動注冊全局引入
注釋版:
// 引入vue
import Vue from 'vue'
// 將字符串首字母大寫 返回當前字符串
function changeStr(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
}
// require.context: 是動態(tài)引入文件
// 參數(shù)一: 當前路徑(引入.vue文件的當前路徑)
// 參數(shù)二:是否匹配當前文件下的子文件
// 參數(shù)三:查找文件格式以.vue結尾的文件
const requireComponent = require.context('./', false, /\.vue$/)
console.log("批量注冊組件", requireComponent.keys()) // ['./head-l.vue', './head-r.vue', './head.vue']
requireComponent.keys().forEach(fileName => {
// 當前組件
const config = requireComponent(fileName)
console.log("組件的信息config", config)
//獲取組件名
const componentName = changeStr(fileName.replace(/^\.\//, '').replace(/\.\w+$/)) // 第一個replace(/^\.\//, '')去掉前面的./ 第二個replace(/\.W+$/)是去掉后面的.vue
console.log("組件名", componentName) // 例如:Head-rundefined
// 參數(shù)一: 組件名
// 參數(shù)二: config:是一整個組件的內容; config.default:是組件中export.default里面的內容
Vue.component(componentName, config.default || config)
})純凈版:
import Vue from 'vue'
function changeStr(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
}
const requireComponent = require.context('./', false, /\.vue$/)
requireComponent.keys().forEach(fileName => {
const config = requireComponent(fileName)
const componentName = changeStr(fileName.replace(/^\.\//, '').replace(/\.\w+$/))
Vue.component(componentName, config.default || config)
})結構:

附:vue 中 import引入相同的方法名稱解決方法
import { list } from '@/api/aaaa/apiJs'
import { list} from '@/api/bbb/apiJs'當引入了2個不同的文件,方法名稱list都是一樣的,就會出現(xiàn)報錯。
如果之前文件用的地方比較多,直接改名稱的話,可能會漏掉,會引起不必要的麻煩,那如何解決呢
解決方法:
import { list } from '@/api/aaaa/apiJs'
import { list as _list} from '@/api/bbb/apiJs'就是使用 import as
as后面的名字就是你要替換的名稱,是不是很簡單就解決了
總結
到此這篇關于vue引入組件的幾種方法的文章就介紹到這了,更多相關vue引入組件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決vue2.x中數(shù)據(jù)渲染以及vuex緩存的問題
本篇文章主要介紹了vue2.x中請求之前數(shù)據(jù)顯示以及vuex緩存的問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
關于vue-socket.io使用及版本原因消息無法監(jiān)聽bug
這篇文章主要介紹了關于vue-socket.io使用及版本原因消息無法監(jiān)聽bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
vue3+echarts+折線投影(陰影)效果的實現(xiàn)
這篇文章主要介紹了vue3+echarts+折線投影(陰影)效果的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
詳解使用element-ui table組件的篩選功能的一個小坑
在element ui 框架中,對于table框架,有一個篩選功能,這篇文章主要介紹了詳解使用element-ui table組件的篩選功能的一個小坑,非常具有實用價值,需要的朋友可以參考下2018-11-11

