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图像处理—虚拟边缘介绍及使用方法
Dec 27 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
JS双击变input框批量修改内容
Dec 12 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
JS实现的tab页切换效果完整示例
Dec 18 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
Sep 11 Javascript
SSM VUE Axios详解
Oct 05 Vue.js
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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
图象函数中的中文显示
2006/10/09 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
python正则分组的应用
2013/11/10 Python
理解python多线程(python多线程简明教程)
2014/06/09 Python
详解Django通用视图中的函数包装
2015/07/21 Python
python+flask实现API的方法
2018/11/21 Python
使用Python实现画一个中国地图
2019/11/23 Python
简单了解Python write writelines区别
2020/02/27 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
一道SQL面试题
2012/12/31 面试题
大学生表扬信范文
2014/01/09 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
大学生支教感言
2015/08/01 职场文书
会计主管竞聘书
2015/09/15 职场文书
怎样写好工作计划
2019/04/10 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
800字作文之大雪
2019/12/04 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP
日元符号 ¥
2022/02/17 杂记