码迷,mamicode.com
首页 > 其他好文 > 详细

如何在Vue中建立全局引用或者全局命令

时间:2017-03-15 20:37:10      阅读:1876      评论:0      收藏:0      [点我收藏+]

标签:this   相互   bsp   directive   方便   自动   ima   size   模块   

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

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

技术分享

 

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

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

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

 技术分享

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

技术分享

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

技术分享

 

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

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

技术分享

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

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

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

技术分享

技术分享

这样就会很方便。

 

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

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

技术分享

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

技术分享

 

如何在Vue中建立全局引用或者全局命令

标签:this   相互   bsp   directive   方便   自动   ima   size   模块   

原文地址:http://www.cnblogs.com/xiaojingyuan/p/6555988.html

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!