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 相关文章推荐
Exitjs获取DataView中图片文件名
Nov 26 Javascript
基于jquery打造的百分比动态色彩条插件
Sep 19 Javascript
jQuery实现简易的天天爱消除小游戏
Oct 16 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
Oct 15 jQuery
vue-router判断页面未登录自动跳转到登录页的方法示例
Nov 04 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
javascript实现前端成语点击验证
Jun 24 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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
PHP 的几个配置文件函数
2006/12/21 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
python测试mysql写入性能完整实例
2018/01/18 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
简单介绍python封装的基本知识
2019/08/10 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
python与mysql数据库交互的实现
2020/01/06 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
python re模块常见用法例举
2021/03/01 Python
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
2014的自我评价
2014/01/13 职场文书
护理专业自我评价
2015/03/11 职场文书
校长新学期寄语2016
2015/12/04 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
Pandas-DataFrame知识点汇总
2022/03/16 Python