您好,登錄后才能下訂單哦!
這篇“vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法”文章吧。
我們?cè)诰帉?xiě)頁(yè)面的時(shí)候,會(huì)存在公共的組件,比如頭部和底部菜單
我們拿公共頭部為例子,想在每個(gè)頁(yè)面都顯示公共頭部的實(shí)現(xiàn)方式有兩種:
在src/components目錄創(chuàng)建目錄 common, 再創(chuàng)建header.vue
header.vue
<template> <div> <h2>header in here</h2> </div> </template>
<script> export default{} </script>
1.全局掛載組件
在main.js里掛載
import headerTop from "xxx/components/common/header" //引入組件 //第一個(gè)參數(shù)表示 head-view標(biāo)簽的內(nèi)容都用第二個(gè)參數(shù)headerTop來(lái)代替 Vue.component("head-view",headerTop); //然后在需要使用的vue文件中引入頭部的話(huà),只需要加入 <head-view></head-view>標(biāo)簽//
組件局部引入,需要用的時(shí)候才引入使用
//在需要使用的VUE文件中引入頭部: <template> <headerTopNav></headerTopNav> </template>
<script> import headerTopNav from 'xxx/components/common/header' //引入組件 export default{ components: {headerTopNav} //表示headerTopNav標(biāo)簽的內(nèi)容被headerTopNav組件代替 } </script>
創(chuàng)建文件夾 以及 JS文件 用來(lái)存放公共的方法
common.js 文件中內(nèi)容如下
const commonData = () => { console.log('我是公共的方法') } export { commonData }
全局使用:
① 在 main.js 文件中全局引入,并在 vue 的原型鏈 (prototype) 中注冊(cè)
// 引入 common.js import { commonData } from './utils/common.js' // 將 common 配置給 Vue 的 $common 成員 Vue.prototype.$commonData = commonData
然后在需要用到該方法的組件文件中使用,如下
<template> <div></div> </template>
<script> export default { created() { this.$commonData(); } }; </script> <style lang="less" scoped> </style>
② 在需要用到該方法的組件文件中局部引用
import { commonData } from '../utils/common.js' <script> export default { created() { commonData(); } }; </script>
在src目錄下新建common公用方法文件夾用于存放公用方法列表
common下新建common.js
該示例定義存、取、刪cookie方法
main.js中引入該文件,并將其添加到Vue原型鏈上
import common from './common/common' Vue.prototype.$common = common //其中$common就是調(diào)用時(shí)所使用的方法
緊接著定義common.js中的方法,錄入即用
export default { //公開(kāi) /** * 設(shè)置cookie **/ setCookie(name, value, day) { let date = new Date(); date.setDate(date.getDate() + day); document.cookie = name + '=' + value + ';expires=' + date; }, /** * 獲取cookie **/ getCookie(name){ let reg = RegExp(name + '=([^;]+)'); let arr = document.cookie.match(reg); if (arr) { return arr[1]; } else { return ''; } }, /** * 刪除cookie **/ delCookie(name) { setCookie(name, null, -1); } }
使用:
在需求頁(yè)面打印 this.$common
打印結(jié)果是這樣的就說(shuō)明方法添加成功了,如果想要添加其他的方法也可以通過(guò)這樣的形式在原型鏈上新增方法
要使用則是:
this.$common.setCookie('cookieName',存入字符串,天數(shù)) //存cookie this.$common.getCookie('cookieName') //取 this.$common.delCookie('cookieName') //刪除
更新:
若是想將其直接定義為全局,且在this指向下,可以這樣做:
首先依舊是定義你想要作為公用的方法
/** * 設(shè)置cookie **/ function setCookie(name, value, day) { let date = new Date(); date.setDate(date.getDate() + day); document.cookie = name + '=' + value + ';expires=' + date; }; /** * 獲取cookie **/ function getCookie(name) { let reg = RegExp(name + '=([^;]+)'); let arr = document.cookie.match(reg); if (arr) { return arr[1]; } else { return ''; } }; /** * 刪除cookie **/ function delCookie(name) { setCookie(name, null, -1); };
然后:
將方法注冊(cè),并添加到Vue的原型鏈
export default { install(Vue,opeions){ Vue.prototype.getCookie = getCookie; Vue.prototype.setCookie = setCookie; Vue.prototype.delCookie = delCookie; } };
注:注冊(cè)之后需要在main.js引入并use才能生效
import commonApi from './util/common' //你的公用方法文件路徑 Vue.use(commonApi)
以上就是關(guān)于“vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。