vue的mixins属性详解


Posted in Javascript onMarch 14, 2018

首先先给出官网 https://vuejs.org/v2/guide/mixins.html

今天在开发项目的时候要改变一个标签的属性,因为项目中有多个地方都要改(业务逻辑相同),所以就看有没办法只改变一个地方,把方法加进去,最后找官网就发现这个属性。

下面是我的-mixin.js 文件

import {mapGetters, mapMutations, mapActions} from 'vuex'  
export const playlistMixin = { 
 computed: { 
  ...mapGetters([ 
   'playList' 
  ]) 
 }, 
 mounted() { 
  this.handlePlaylist(this.playList) 
 }, 
 activated() { 
  this.handlePlaylist(this.playList) 
 }, 
 watch: { 
  playList(newVal) { 
   this.handlePlaylist(newVal) 
  } 
 }, 
 methods: { 
  handlePlaylist() { 
   throw new Error('component must implement handlePlaylist method') 
  } 
 }  
}

这个文件就暴露出一个对象,不过这个对象和组件很类似,也就是组件的js代码部分类似。

这个.js文件要做的事情就是,在生命周期中和playList 变量改变的时候触发handlePlaylist 函数,但是这个函数的逻辑是在各自要改变的组件当中去实现。下面看看怎么用Mixin。

import {playlistMixin} from 'common/js/mixin' //引入Mixin 
 export default { 
  mixins: [playlistMixin], 
  methods: { 
    handlePlaylist (playlist) { 
    let bottom = playlist.length > 0 ? '60px' : '' 
    this.$refs.recommend.style.bottom = bottom 
    this.$refs.scroll.refresh() 
   }, 
  } 
 }

在使用的组件中这样调用。

mixins: 这个属性是个数组,也就是说可以加载多个 minxin 文件。

handlePlaylist 方法是完成业务逻辑。所以在组件的生命周期中都会添加 this.handlePlaylist() 方法。

这样就可以减少一部分代码。

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

Javascript 相关文章推荐
jQuery each()方法的使用方法
Mar 18 Javascript
Prototype源码浅析 Enumerable部分之each方法
Jan 16 Javascript
javascript之典型高阶函数应用介绍二
Jan 10 Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 Javascript
javascript控制台详解
Jun 25 Javascript
简单理解vue中track-by属性
Oct 26 Javascript
JavaScript函数参数的传递方式详解
Mar 06 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 Javascript
微信小程序中转义字符的处理方法
Mar 28 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
layer弹出层取消遮罩的方法
Sep 25 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 #Javascript
react中fetch之cors跨域请求的实现方法
Mar 14 #Javascript
解决vue项目报错webpackJsonp is not defined问题
Mar 14 #Javascript
create-react-app构建项目慢的解决方法
Mar 14 #Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
Mar 14 #Javascript
react以create-react-app为基础创建项目
Mar 14 #Javascript
200行代码实现blockchain 区块链实例详解
Mar 14 #Javascript
You might like
PHP新手上路(十一)
2006/10/09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
Javascript:为input设置readOnly属性(示例讲解)
2013/12/25 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
Python httplib模块使用实例
2015/04/11 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
美术专业学生个人自我评价
2013/09/19 职场文书
专科文秘应届生求职信
2013/11/18 职场文书
高级方案规划工程师岗位职责
2013/11/29 职场文书
文案策划求职信
2014/04/14 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
烟台的海导游词
2015/02/02 职场文书
地球一小时活动总结
2015/02/27 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
初中美术教学反思
2016/02/17 职场文书
用Python提取PDF表格的方法
2021/04/11 Python