vue 全局注册

当你注册完之后,可以在任何组件中直接使用,而不需要在各个组件中引入并局部注册

通常公共组件放在src文件夹下的components文件夹中,这里的组件进行全局注册。

 

* 全局组件

1、在src文件夹中新建utils文件夹,utils文件夹中一般存放通用的辅助文件(方法、数据等)

2、在文件夹中新建components.js文件

3、在components.js文件引入所有要注册的全局组件

4、在main.js中引入components.js文件并使用Vue.use()全局注册

 

utils - components.js

import ComponentA from '@/components/ComponentA' // ComponentA
import ComponentB from '@/components/ComponentB' // ComponentB

export default (Vue)=>{
  Vue.component("ComponentA", ComponentA)
  Vue.component('ComponentB', ComponentB)  
}

 main.js

import components from '@/utils/components.js'
Vue.use(components)

new Vue({
  // ...
})

* 全局指令  

全局指令的注册方法同全局组件

utils - directives.js

export default (Vue)=>{
    Vue.directive("focus", {
        inserted: function (el) {
            el.focus();
        }
    })
}

main.js

import directives from '@/utils/directives.js'
Vue.use(directives)

new Vue({
  // ...
})

* 全局过滤器

全局过滤器的注册方法同全局组件

utils - filters.js

export default {
    // 操作返回无百分号的数据
    numUpDown(v) {
        return isNaN(v)?v:(v>0?('+'+v):v);
    },
    //...
};

main.js

import filters from '@/utils/filters';

Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key]);
});
<p>{{ data| numUpDown}}</p>

* 全局方法

utils - allFunc.js

exports.install = function(Vue, options) {
    Vue.prototype.$back = function() { //全局函数1
        xxx
    };
    Vue.prototype.$pushH = function() { //全局函数2
        xxx
    };
    Vue.prototype.$pushHN = function() { //全局函数3
        xxx
    };
};

main.js

import all from '../static/js/all';
Vue.use(all);//将全局函数当做插件来进行注册
go: function() {
      this.$back();               
    }

参考资料:

https://cn.vuejs.org/v2/api/#filters

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值