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.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
Oct 11 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
jquery中实现标签切换效果的代码
Mar 01 Javascript
使用JavaScript 编写简单计算器
Nov 24 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
JS实现带动画的回到顶部效果
Dec 28 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
Vue extend的基本用法(实例详解)
Dec 09 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
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
利用Python演示数型数据结构的教程
2015/04/03 Python
简单介绍Ruby中的CGI编程
2015/04/10 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
python八大排序算法速度实例对比
2017/12/06 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
什么是python的函数体
2020/06/19 Python
如何利用python发送邮件
2020/09/26 Python
PHP面试题集
2016/12/18 面试题
会计与审计毕业生自荐信范文
2013/12/30 职场文书
保护环境演讲稿
2014/05/10 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL