關於Vue.use()詳解
問題
相信很多人在用Vue使用別人的元件時,會用到 Vue.use() 。例如:Vue.use(VueRouter)、Vue.use(MintUI)。但是用 axios時,就不需要用 Vue.use(axios),就能直接使用。那這是為什麼吶?
答案
因為 axios 沒有 install。
什麼意思呢?接下來我們自定義一個需要 Vue.use() 的元件,也就是有 install 的元件,看完之後就明白了。
定義元件
生成模版 vue init webpack-simple custom-global-component
custom-global-component 為新建的資料夾名稱
然後一路回車
cd custom-global-component 進入該資料夾
npm install 安裝本次需要的模組
npm run dev 執行專案
如果能正常開啟,進行下一步
這是當前專案目錄:
1.建立如下圖中的資料夾和檔案
2.在 Loading.vue 中定義一個元件
<template>
<div class="loading-box">
Loading...
</div>
</template>
3.在 index.js 中 引入 Loading.vue ,並匯出
// 引入元件
import LoadingComponent from './loading.vue'
// 定義 Loading 物件
const Loading={
// install 是預設的方法。當外界在 use 這個元件的時候,就會呼叫本身的 install 方法,同時傳一個 Vue 這個類的引數。
install:function(Vue){
Vue.component('Loading',LoadingComponent)
}
}
// 匯出
export default Loading
4.在 main.js 中引入 loading 檔案下的 index
// 其中'./components/loading/index' 的 /index 可以不寫,webpack會自動找到並載入 index 。如果是其他的名字就需要寫上。
import Loading from './components/loading/index'
// 這時需要 use(Loading),如果不寫 Vue.use()的話,瀏覽器會報錯,大家可以試一下
Vue.use(Loading)
5.在App.vue裡面寫入定義好的元件標籤
<template>
<div id="app">
<h1>vue-loading</h1>
<Loading></Loading>
</div>
</template>
6.看到這兒大家應該就明白了吧,用 axios時,之所以不需要用 Vue.use(axios),就能直接使用,是因為開發者在封裝 axios 時,沒有寫 install 這一步。至於為啥沒寫,那就不得而知了。
作者:劉員外__
連結:https://www.jianshu.com/p/89a05706917a
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- Vue.use(plugin)詳解VuePlugin
- Vue原始碼: 關於vm.$delete()/Vue.use() 內部原理Vue原始碼delete
- Mysql 關於event的詳解MySql
- 關於SSL裝置的詳解
- Windows 關於Robocopy的使用詳解Windows
- Mysql關於procedure、function的詳解MySqlFunction
- 關於C++中物件與類的詳解及其作用詳解C++物件
- 關於RestCloud iPaaS平臺的板塊詳解RESTCloud
- 關於WiFi協議的調製方式詳解WiFi協議
- 關於Redis哨兵機制,7張圖詳解!Redis
- 關於集合遍歷並刪除報錯詳解
- 「Adobe國際認證」關於 Photoshop 圖層詳解
- Vue.use 原始碼分析Vue原始碼
- vue.use()做了什麼Vue
- Jmeter關聯詳解JMeter
- 帶你詳細解讀十條關於SQL效能優化!SQL優化
- 關於流逝佈局作業7.0顯示問題詳解
- 關於常用的http請求頭以及響應頭詳解HTTP
- CV關於Mysql中ON與Where區別問題詳解buaMySql
- 關於BSC鏈智慧合約dapp開發詳情講解APP
- 關於C++類的定義和物件的建立詳解C++物件
- 什麼是雲資料庫?關於IaaS、PaaS、SaaS、DBaaS 詳解資料庫
- BAT面試必問細節:關於Netty中的ByteBuf詳解BAT面試Netty
- 關於SAP clienyt copy詳細解析
- 關於 Redis & 常用用法詳情Redis
- vue.use()方法從原始碼到使用Vue原始碼
- 關於召回《Linux裝置驅動開發詳解-基於最新的Linux 4.0核心》的通知Linux
- SQL Server 表的管理_關於事務操作的詳解(案例程式碼)SQLServer
- Go 切片詳解(理解是關鍵)Go
- C++ typeid關鍵字詳解C++
- sqli-labs第二關 詳解SQL
- 【詳解】WebSocket相關知識整理Web
- 關於Synchronized你瞭解多少?synchronized
- 關於FFMPEG的解碼模型模型
- 滑鼠CPI和DPI是什麼?關於滑鼠DPI和CPI的區別詳解
- 關於安裝DNS伺服器的新增步驟具體圖文詳解DNS伺服器
- 關於 鎖的四種狀態與鎖升級過程 圖文詳解
- MTK Camera相關的Makefile Option詳解