Vue中建立全局引用或者全局命令的方法


Posted in Javascript onAugust 21, 2017

如何在Vue中建立全局引用或者全局命令,具体内容如下

1 一般在vue中,有很多vue组件,这些组件每个都是一个文件。都可能需要引用到相同模块(或者插件)。我们不想每个文件都import 一次模块。

如果是基于vue.js编写的插件我们可以用 Vue.use(...)

main.js

Vue中建立全局引用或者全局命令的方法

2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办?

第一步:最好建立一个全局的命令文件例如:directive/directive.js

第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚焦

directive.js

Vue中建立全局引用或者全局命令的方法

第三部步:在main.js(入口JS文件)中将它引入,可以省略文件后缀

main.js

Vue中建立全局引用或者全局命令的方法

这样任何一个Vue文件只要这样v-focus(命令名),就可以很方便的用到了

Vue中建立全局引用或者全局命令的方法

3 Vue.directive() 的命令一般都是自动运行的或者说初始化等等触发的,并不能用于异步事件,怎么办?

于是我们可以用到'mixins'混合命令,你最好建立一个专门的文件夹用于存放混合命令,例如:

mixins.js

Vue中建立全局引用或者全局命令的方法

比如saveScrollPosition (不是vue中的saveScrollPosition)可以每次在路由跳转之间保存住浏览位置信息

注意:vue2.0 中 路由跳转之间会自动保存位置信息 但是有Bug(位置信息之间会相互干扰)。

所以我们从新写一个saveScrollPosition暴露出去后,在你需要的页面中混入

Vue中建立全局引用或者全局命令的方法

Vue中建立全局引用或者全局命令的方法

这样就会很方便。

4 如果你需要应用一个插件,同时他并不是基于vue.js的插件命令编写的,那你可以将它赋予Vue的原型上

例如:我想全局引用axios,我们可以这样

main.js

Vue中建立全局引用或者全局命令的方法

然后this.$http.get(url) 等等

xxx.vue

Vue中建立全局引用或者全局命令的方法

5 将需要的变量挂在到window对象上

例如:第三方库Lodash.js,moment.js等等

main.js

Vue中建立全局引用或者全局命令的方法

xxx.vue

Vue中建立全局引用或者全局命令的方法

注意:这种方式不适合服务端渲染,服务端并没有window对象

强调一点:以上所有的引入都必须通过入口JS文件去引入,这样才能适用于全局

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ui dialog实现弹窗特效的思路及代码
Aug 03 Javascript
js计算两个时间之间天数差的实例代码
Nov 19 Javascript
Javascript的闭包详解
Dec 26 Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
重新认识vue之事件阻止冒泡的实现
Aug 02 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
javascript+Canvas实现画板功能
Jun 23 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 Javascript
在JavaScript中如何使用宏详解
May 06 Javascript
JS实现身份证输入框的输入效果
Aug 21 #Javascript
Vue自定义指令使用方法详解
Aug 21 #Javascript
javascript实现Java中的Map对象功能的实例详解
Aug 21 #Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 #Javascript
JavaScript中各数制转换全面总结
Aug 21 #Javascript
JQuery判断正整数整理小结
Aug 21 #jQuery
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 #Javascript
You might like
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP实现文件下载详解
2014/11/27 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
Python  连接字符串(join %)
2008/09/06 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python实现画出e指数函数的图像
2019/11/21 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
简单的命令查看安装的python版本号
2020/08/28 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
机械制造专业毕业生求职信
2014/03/02 职场文书
学校安全责任书范本
2014/07/23 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
运动会观后感
2015/06/09 职场文书
教育教学读书笔记
2015/07/02 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android