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 相关文章推荐
setTimeout 不断吐食CPU的问题分析
Apr 01 Javascript
jquery form表单序列化为对象的示例代码
Mar 05 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
页面加载完后自动执行一个方法的js代码
Sep 06 Javascript
JavaScript中实现最高效的数组乱序方法
Oct 11 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
Mar 06 Javascript
使用BootStrapValidator完成前端输入验证
Sep 28 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
canvas绘制爱心的几种方法总结(推荐)
Oct 31 Javascript
微信小程序input框中加入小图标的实现方法
Jun 19 Javascript
记录一次开发微信网页分享的步骤
May 07 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 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下10件你也许并不了解的事情
2008/09/11 PHP
使用php来实现网络服务
2009/09/15 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python登录注册验证功能实现
2018/06/18 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python3多线程知识点总结
2019/09/26 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
建筑毕业生自我鉴定
2013/10/18 职场文书
幼师专业求职推荐信
2013/11/08 职场文书
小学新学期寄语
2014/04/02 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
庆七一主持词
2015/06/29 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python