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 相关文章推荐
JQuery之focus函数使用介绍
Aug 20 Javascript
jQuery实现点击图片翻页展示效果的方法
Feb 16 Javascript
node.js中module.exports与exports用法上的区别
Sep 02 Javascript
JS实现标签页切换效果
May 04 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 Javascript
toString.call()通用的判断数据类型方法示例
Aug 28 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
Sep 04 Javascript
javascript canvas实现简易时钟例子
Sep 05 Javascript
比较node.js和Deno
Apr 27 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
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python logging模块学习笔记
2014/05/24 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
python 实现IP子网计算
2021/02/18 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
AJAX的全称是什么
2012/11/06 面试题
行政助理求职自荐信
2013/10/26 职场文书
师德师风建设方案
2014/05/08 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
培训班开班主持词
2015/07/02 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
初中政治教学反思
2016/02/23 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书