Vue中自定義全局組件的實現(xiàn)方法
前言
有時候我們在做開發(fā)的時候,就想自己寫一個插件然后就可以使用自己的插件,那種成就感很強。今天就解決了一個長期困擾著我的問題,現(xiàn)在記錄一下,供日后參考。
涉及知識點是Vue.js官網(wǎng)教程中的插件使用
方法如下:
首先我遇到的問題就是我自定義的組件如果需要在項目中其他組件中多次被調(diào)用,而我之前的解決方法就是簡單的,哪里需要在哪引用。這無疑增加了許多代碼重復(fù)。
而在使用Vue.js的一些UI框架的時候則注意到,只需要在項目的入口文件中import這個插件然后在接著Vue.use(‘插件名')。這樣就能在整個項目里面使用這個框架中的組件以及方法了。
查閱資料后發(fā)現(xiàn),自定義的組件需要提供一個install方法
import sideblockComponent from './sideBlock' const defaultComponentName = 'sidebar' const Sidebar = { install(Vue, options = {}) { const componentName = options.componentName || defaultComponentName //提供可選的組件名 Vue.component(componentName, sideblockComponent) } } export default Sidebar
像這樣 引入自己編寫好的組件,然后創(chuàng)建一個對象,并包含一個install方法,并使用Vue.component()
方法注冊成Vue全局組件,最后export default導(dǎo)出這個對象。
到此最關(guān)鍵的步驟已經(jīng)做好,接下來是最最關(guān)鍵的步驟。
我們需要在項目的入口文件中引入剛剛做好的組件,并且通過Vue.use
(引入的組件)來使用插件。
到此,一個全局Vue組件就弄好了。我們在提供install方法的同時也可以通過Vue.$emit()
的方法來觸發(fā)組件中的方法,但最近在使用Element UI時發(fā)現(xiàn)他們組件中的方法一般都是通過Vue.$refs()
來觸發(fā)的。具體原因留到日后再做研究。
vue $refs的基本用法
<div id="app"> <input type="text" ref="input1"/> <button @click="add">添加</button> </div>
<script> new Vue({ el: "#app", methods:{ add:function(){ this.$refs.input1.value ="22"; //this.$refs.input1 減少獲取dom節(jié)點的消耗 } } }) </script>
一般來講,獲取DOM元素,需document.querySelector(".input1")獲取這個dom節(jié)點,然后在獲取input1的值。
但是用ref綁定之后,我們就不需要在獲取dom節(jié)點了,直接在上面的input上綁定input1,然后$refs里面調(diào)用就行。
然后在javascript里面這樣調(diào)用:this.$refs.input1 這樣就可以減少獲取dom節(jié)點的消耗了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
利用vue3自己實現(xiàn)計數(shù)功能組件封裝實例
組件(Component) 是Vue.js最強大的功能之一,組件可以擴展 HTML 元素,封裝可重用的代碼,這篇文章主要給大家介紹了關(guān)于利用vue3自己實現(xiàn)計數(shù)功能組件封裝的相關(guān)資料,需要的朋友可以參考下2021-09-09element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼
最近寫項目的時候需要一次上傳多張圖片,本文主要介紹了element plus中el-upload實現(xiàn)上傳多張圖片的示例代碼,具有一定的參考價值,感興趣的可以了解一下2024-01-01vue框架和react框架的區(qū)別以及各自的應(yīng)用場景使用
這篇文章主要介紹了vue框架和react框架的區(qū)別以及各自的應(yīng)用場景使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10Vue2.X和Vue3.0數(shù)據(jù)響應(yīng)原理變化的區(qū)別
這篇文章主要介紹了Vue2.X和Vue3.0數(shù)據(jù)響應(yīng)原理變化的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11vue項目中常用解決跨域的方法總結(jié)(CORS和Proxy)
在vue項目中,一般我們會遇到跨域的問題,vue項目中解決跨域是非常簡單的,下面這篇文章主要給大家介紹了關(guān)于vue項目中常用解決跨域的方法,主要解釋CROS和Proxy兩種方式,需要的朋友可以參考下2022-12-12