源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-04-11 01:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Vue中建立全局引用或者全局命令的方法
如何在Vue中建立全局引用或者全局命令,具体内容如下 1 一般在vue中,有很多vue组件,这些组件每个都是一个文件。都可能需要引用到相同模块(或者插件)。我们不想每个文件都import 一次模块。 如果是基于vue.js编写的插件我们可以用 Vue.use(...) [i]main.js[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005131.png[/img] 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚焦 [i]directive.js[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005132.png[/img] 第三部步:在main.js(入口JS文件)中将它引入,可以省略文件后缀 main.js [img]http://files.jb51.net/file_images/article/201708/2017082116005133.png[/img] 这样任何一个Vue文件只要这样v-focus(命令名),就可以很方便的用到了 [img]http://files.jb51.net/file_images/article/201708/2017082116005134.png[/img] 3 Vue.directive() 的命令一般都是自动运行的或者说初始化等等触发的,并不能用于异步事件,怎么办? 于是我们可以用到'mixins'混合命令,你最好建立一个专门的文件夹用于存放混合命令,例如: [i]mixins.js[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005135.png[/img] 比如saveScrollPosition (不是vue中的saveScrollPosition)可以每次在路由跳转之间保存住浏览位置信息 注意:vue2.0 中 路由跳转之间会自动保存位置信息 但是有Bug(位置信息之间会相互干扰)。 所以我们从新写一个saveScrollPosition暴露出去后,在你需要的页面中混入 [img]http://files.jb51.net/file_images/article/201708/2017082116005136.png[/img] [img]http://files.jb51.net/file_images/article/201708/2017082116005237.png[/img] 这样就会很方便。 4 如果你需要应用一个插件,同时他并不是基于vue.js的插件命令编写的,那你可以将它赋予Vue的原型上 例如:我想全局引用axios,我们可以这样 [i]main.js[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005238.png[/img] 然后this.$http.get(url) 等等 [i]xxx.vue[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005239.png[/img] 5 将需要的变量挂在到window对象上 例如:第三方库Lodash.js,moment.js等等 [i]main.js[/i] [i][img]http://files.jb51.net/file_images/article/201708/2017082116005240.png[/img] [/i] [i]xxx.vue[/i] [img]http://files.jb51.net/file_images/article/201708/2017082116005241.png[/img] 注意:这种方式不适合服务端渲染,服务端并没有window对象 强调一点:以上所有的引入都必须通过入口JS文件去引入,这样才能适用于全局 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部