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 Event学习第六章 事件的访问
Feb 07 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
Sep 26 Javascript
JavaScript对象数组排序函数及六个用法
Dec 23 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
Aug 02 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
js闭包用法实例详解
Dec 13 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
Angularjs Promise实例详解
Mar 15 Javascript
深入理解 TypeScript Reflect Metadata
Dec 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
50个PHP程序性能优化的方法
2014/06/02 PHP
php去除数组中重复数据
2014/11/18 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
初识PHP中的Swoole
2016/04/05 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Python模块文件结构代码详解
2018/02/03 Python
python实现趣味图片字符化
2019/04/30 Python
python实现ftp文件传输功能
2020/03/20 Python
Python利用命名空间解析XML文档
2020/08/10 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
关于安全演讲稿
2014/05/09 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
出差报告格式模板
2014/11/06 职场文书
预备党员转正意见
2015/06/01 职场文书
公司周年庆典致辞
2015/07/30 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python