Vue之mixin全局的用法详解


Posted in Javascript onAugust 22, 2018

先贴上官方定义。

个人觉得全局mixin就是给全部Vue文件添加一些公用的实例(方法,过滤器and so on)

使用场景:货币单位,时间格式。这些如果在用到的页面使用的话代码会重复的很多,所以在全局混入这些实例会减少代码量,可维护性也比较高。

ex:

step1: 先定义mixin.js

const mixin = {
 methods: {
  /**
   * 格式化时间
   * @param {string|number|object|Array} dateTime - 时间,可以是一个字符串、时间戳、表示时间的对象、Date对象或者******表示时间的数组
   * @param {string} [fmt] - 格式
   * @returns {string} 返回格式化后的日期时间,默认格式:2018年1月11日 15:00
   * @see [momentjs]{@tutorial http://momentjs.cn/}
   */
  formatDate (dateTime, fmt = 'YYYY年M月DD日 HH:mm:ss') {
   if (!dateTime) {
    return ''
   }
   moment.locale('zh-CN')
   dateTime = moment(dateTime).format(fmt)
   return dateTime
  }
 }
}export defaullt mixin

step2:在main.js文件里面

import mixin from './mixin'
Vue.mixin(mixin)

全局混入是.mixin没有s

step3:在你的vue文件里面就可以使用mixin里面定义好的东西比如

 

data() {
  return {
   userName: "等你",
   time: this.formatDate(new Date()),
   arr: [1,2,3,4,5,'文字'],
   result: []
  }
 }

这个vue文件的数据源data里面的time就是引用混入进来的方法。

使用mixins里的方法

设置路由

// src/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

export default new Router({
 mode:'history',
 routes: [
  {
   path:'/',
   redirect:'/index'
  },
  {
   path: '/about',
   name: 'About',
   component:resolve => require(['@/pages/About'],resolve)
  },
  {
   path: '/index',
   name: 'Index',
   component:resolve => require(['@/pages/Index'],resolve)
  },
  {
   path: '/product',
   name: 'Product',
   component:resolve => require(['@/pages/Product'],resolve)
  }
 ]
})

页面调用mixins里的loadPage方法

<p @click="loadPage('Index')">Index</p>

Index页面如下

// src/pages/Index
<template>
 <div>
  <p>这是index页面</p>
  <p @click="loadPage('Index')">Index</p>
  <p @click="loadPage('About')">About</p>
  <p @click="loadPage('Product')">Product</p>
 </div>
</template>
<script>
 export default{

 }
</script>
<style>

</style>

至此,全局混入大功告成,有心的读者也可以试试局部混入(主要用于后期代码维护)。

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

Javascript 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
js实现的网页颜色代码表全集
Jul 17 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
Dec 06 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
JavaScript评论点赞功能的实现方法
Mar 13 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
django使用channels2.x实现实时通讯
Nov 28 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 Javascript
Canvas跟随鼠标炫彩小球的实现
Apr 11 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 Javascript
React中使用UEditor百度富文本的方法
Aug 22 #Javascript
VUE 全局变量的几种实现方式
Aug 22 #Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 #Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 #Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 #Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 #Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 #Javascript
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
文章推荐系统(三)
2006/10/09 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python基础教程之lambda表达式使用方法
2014/02/12 Python
常用python数据类型转换函数总结
2014/03/11 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
在Python中增加和插入元素的示例
2018/11/01 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
谢师宴答谢词
2015/01/05 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers