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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
jquery 页面滚动到指定DIV实现代码
Sep 25 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
js中数组插入、删除元素操作的方法
Feb 15 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
Sep 14 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
Angular实现svg和png图片下载实现
May 05 Javascript
js 计数排序的实现示例(升级版)
Jan 12 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
python爬虫的工作原理
2017/03/05 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
Django跨域请求原理及实现代码
2020/11/14 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
家长评语和期望
2014/02/10 职场文书
常务副总经理任命书
2014/06/05 职场文书
写字楼租赁意向书
2014/07/30 职场文书
质量保证书格式
2015/02/27 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
郭明义观后感
2015/06/08 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书