詳解Vue.use自定義自己的全局組件
通常我們在vue里面使用別人開發(fā)的組件,第一步就是install,第二步在main.js里面引入,第三步Vue.use這個組件。今天我簡單的也來use一個自己的組件。
這里我用的webpack-simple這個簡單版本的腳手架為例,安裝就不啰嗦了,直接進入正題
首先看下目前的項目結(jié)構(gòu):
webpack首先會加載main.js,所以我們在main的js里面引入。我以element ui來做對比說明
import Vue from 'vue' import App from './App.vue' // 引入element-ui組件 import ElementUi from 'element-ui' import 'element-ui/lib/theme-default/index.css' // 引入自定義組件。index.js是組件的默認入口 import Loading from '../components/loading' Vue.use(Loading); Vue.use(ElementUi); new Vue({ el: '#app', render: h => h(App) })
然后在Loading.vue里面定義自己的組件模板
<!-- 這里和普通組件的書寫一樣 --> <template> <div class="loading"> loading... </div> </template>
在index.js文件里面添加install方法
import MyLoading from './Loading.vue' // 這里是重點 const Loading = { install: function(Vue){ Vue.component('Loading',MyLoading) } } // 導(dǎo)出組件 export default Loading
接下來就是在App.Vue里面使用組件了,這個組件已經(jīng)在main.js定義加載了
<template> <div id="app"> <!-- 使用element ui的組件 --> <el-button>默認按鈕</el-button> <!-- 使用自定義組件 --> <Loading></Loading> </div> </template>
下面是效果圖
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺析vue3響應(yīng)式數(shù)據(jù)與watch屬性
這篇文章主要介紹了vue3響應(yīng)式數(shù)據(jù)與watch屬性的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05vue中封裝axios并實現(xiàn)api接口的統(tǒng)一管理
這篇文章主要介紹了vue中封裝axios并實現(xiàn)api接口的統(tǒng)一管理的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-12-12詳解vue服務(wù)端渲染瀏覽器端緩存(keep-alive)
在使用服務(wù)器端渲染時,除了服務(wù)端的接口緩存、頁面緩存、組建緩存等,瀏覽器端也避免不了要使用緩存,減少頁面的重繪。這篇文章主要介紹了詳解vue服務(wù)端渲染瀏覽器端緩存(keep-alive),感興趣的小伙伴們可以參考一下2018-10-10Vue+ElementUI前端添加展開收起搜索框按鈕完整示例
最近一直在用element ui做后臺項目,下面這篇文章主要給大家介紹了關(guān)于Vue+ElementUI前端添加展開收起搜索框按鈕的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05vue3?+?elementPlus?reset重置表單問題
這篇文章主要介紹了vue3?+?elementPlus?reset重置表單問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05vue項目登錄成功拿到令牌跳轉(zhuǎn)失敗401無登錄信息的解決
這篇文章主要介紹了vue項目登錄成功拿到令牌跳轉(zhuǎn)失敗401無登錄信息的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02vue之父子組件間通信實例講解(props、$ref、$emit)
組件間如何通信,也就成為了vue中重點知識了。這篇文章將會通過props、$ref和 $emit 這幾個知識點,來講解如何實現(xiàn)父子組件間通信。2018-05-05