[前端开发]Vue mixin
- 两个非常相似的组件,他们的基本功能是一样的,但他们之间又存在着足够的差异性,此时的你就像是来到了一个分岔路口:我是把它拆分成两个不同的组件呢?还是保留为一个组件,然后通过props传值来创造差异性从而进行区分呢?
- 这时就可以使用Mixin。Vue 中的Mixin对编写函数式风格的代码很有用,因为函数式编程就是通过减少移动的部分让代码更好理解。Mixin允许你封装一块在应用的其他组件中都可以使用的函数。如果使用姿势得当,他们不会改变函数作用域外部的任何东西,因此哪怕执行多次,只要是同样的输入你总是能得到一样的值,真的很强大
- 具体应用在电商app中,
better-scroll
中,每次mounted时需要通过加载图片的高度刷新容器高度,在Home和Detail中都用到了同样的方法,新建一个mixin.js
import {debounce} from 'common/utils'
export const itemListenerMixin = {
data(){
return {
itemImgListener:null
}
},
mounted(){
let newRefresh = debounce(this.$refs.scroll.refresh,100)
this.itemImgListener = () =>{
newRefresh()
}
this.$bus.$on('itemImgLoad',this.itemImgListener)
console.log('haha');
}
}
- 在Home和Detail中引入、注册即可
import {itemListenerMixin} from 'common/mixin'
mixins:[itemListenerMixin]
mixin的执行顺序问题
- 当mixin中和组件中同时定义了相同的生命周期钩子,mixin会被先注册,此时组件中的生命周期钩子就可以对其进行修改,mixin也会被先推入数组,组件次之
//mixin
const hi = {
mounted() {
console.log('mixin')
}
}
//component
new Vue({
el: '#app',
mixins: [hi],
mounted() {
console.log('component')
}
});
//output in console
> component
> component
[前端开发]Vue mixin的更多相关文章
- 前端开发 vue,angular,react框架对比2
在过去一年里,前端开发发展迅速,前端工程师的薪资亦是水涨船高.2019 更是热度不减,而作为近年来尤为热门的前端框架,Vue.js 自是积累了大量关注.那么,Vue.js 是适合你的框架吗? ...
- 前端开发 vue,angular,react框架对比1
转载自:https://www.cnblogs.com/hubgit/p/6633214.html 首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Mod ...
- 前端开发 Vue Vue.js和Nodejs的关系
首先vue.js 是库,不是框架,不是框架,不是框架. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你 ...
- 前端开发 Vue -1windows环境搭建Vue Node开发环境
解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...
- 前端开发 Vue -0前言
Vue2.0 新手完全填坑攻略——从环境搭建到发布 Vue2 入门,读这篇就够了 Jinkey原创感谢 showonne.yubang 技术指导Demo 地址:http://demo.jinkey.i ...
- 前端开发 Vue -4promise解读1
JS(JavaScript) - Promise 2015年6月, ES2015(即 ECMAScript 6.ES6) 正式发布.其中 Promise 被列为正式规范,成为 ES6 中最重要的特性之 ...
- 前端开发 Vue -3axios
Axios是什么? 应该念“阿克希奥斯”……但是太长太拗口,我一般念“阿笑斯”…… Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get.post请求.说到get.po ...
- 前端开发--vue开发部分报错指南
前期开发过程中 [Vue warn]: Error in render: "TypeError: Cannot read property '0' of undefined". 解 ...
- [前端开发]Vue父子组件的通信及访问
父传子 props 子传父 自定义事件emit props传数组 props:['cmovies','cmessage'] props传对象 props:{ //1.类型限制 cmovies:Arra ...
随机推荐
- MySQL 增删改查(单表)
1.sql 新增语句 表中插入数据 insert into + 表名 values(字段1value1,字段2value1,字段3value1),(字段1value2,字段2value2,字段3val ...
- andorid jar/库源码解析
前言 本篇作为开篇,会大体上说明,需要解读源码的,类库,或者jar. 序 原本,类库和jar的系列准备写到逆向系列课程的,但是那个东西,在写了两篇,就没有后续了,现在也不知道从哪里开始了, 只能等后期 ...
- Unix的I/O模型
对于一次I/O操作(以read为例),数据首先被拷贝到内核的某个缓冲区,然后再从内核缓冲区拷贝到应用进程缓冲区. 因此,一次I/O操作通常包含两个阶段: (1) 等待数据准备好 (2) 从内核向进程复 ...
- turtle库应用实例3-叠加等边三角形绘制(一笔画)
叠加等边三角形绘制 ...
- High Card Low Card G(田忌赛马进阶!!)
传送门 \(首先一定要明确一个观点,不然会完全没有思路\) \(\bullet\)\(由于前半段大的更优,后半段小的更优.\) \(\bullet\)\(所以,\)Bessie\(一定会在前(n/2) ...
- .Net Core WPF之XAML概述
原文链接,机器翻译,有误处参看原文. XAML overview in WPF 2019/08/08 What is XAML XAML syntax in brief Case and white ...
- 如何快速理解Spring中的DI和AOP
前言 Spring框架通过POJO最小侵入性编程.DI.AOP.模板代码手段来简化了Java 开发,简化了企业应用的开发.POJO和模板代码相对来说好理解,本篇重点解读下DI和AOP. 一 DI DI ...
- 【Spark】通过SparkStreaming实现从socket接受数据,并进行简单的单词计数
文章目录 步骤 一.创建maven工程并导入jar包 二.安装并启动生产者 三.开发SparkStreaming代码 四.查看结果 步骤 一.创建maven工程并导入jar包 <properti ...
- 【Spark】不熟悉Spark-shell常用参数?这一张图就够了
- shell bash终端中输出的颜色和格式详解(超详细)
文章目录 1) 格式 1.1 Set 1.2 Reset 2)8/16 Colors 2.1 前景(文字) 2.2 背景 3)88/256颜色 3.1 前景(文字) 3.2 背景色 4)组合属性 5) ...