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 相关文章推荐
javascript 定义新对象方法
Feb 20 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
Node+Express+MongoDB实现登录注册功能实例
Apr 23 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
vue服务端渲染缓存应用详解
Sep 12 Javascript
Vue如何获取数据列表展示
Dec 11 Javascript
es6中let和const的使用方法详解
Feb 24 Javascript
JS数组Reduce方法功能与用法实例详解
Apr 29 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
Jun 01 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继承的一个应用
2011/09/06 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
实例解析php的数据类型
2018/10/24 PHP
List Installed Software Features
2007/06/11 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
详解Python下ftp上传文件linux服务器
2018/06/21 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
python suds访问webservice服务实现
2020/06/26 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
详解Python模块化编程与装饰器
2021/01/16 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
董事长秘书岗位职责
2013/11/29 职场文书
写给老师的表扬信
2014/01/21 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
同事去世追悼词
2015/06/23 职场文书