溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法

發(fā)布時(shí)間:2022-05-27 13:43:24 來(lái)源:億速云 閱讀:687 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法”文章吧。

    自定義公共組件及提取公共的方法

    vue自定義公共組件

    我們?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>

    vue 提取公共的方法

    創(chuàng)建文件夾 以及 JS文件 用來(lái)存放公共的方法 

    vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法

    vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法

    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>

    vue定義公用方法

    在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ò)這樣的形式在原型鏈上新增方法

    vue如何實(shí)現(xiàn)自定義公共組件及提取公共方法

    要使用則是:

    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è)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(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)容。

    vue
    AI