Vue中的“混合”——mixins使用方法
混合是一种灵活的分布式复用 Vue 组件的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。当组件和混合对象含有同名选项时,这些选项将以恰当的方式混合。比如,同名钩子函数将混合为一个数组,因此都将被调用
var mixin = {
  created: function () {
    console.log('混合对象的钩子被调用')
  }
}
new Vue({
  mixins: [mixin],
  created: function () {
    console.log('组件钩子被调用')
  }
})
// -> "混合对象的钩子被调用"
// -> "组件钩子被调用"
具体用法详见:https://cn.vuejs.org/v2/guide/mixins.html
这里注意的是:
1:mixin定义的是一个对象;
2:mixin定义的对象中包含的内容,可以通过再vue中的mixins引入进去;
3:名字相同的会合并,根据这一原理,可以在不同的地方定义vue中的参数,然后合并;
4:注意的是这里并不是vue的子组件形式,子组件定义的数据,是可以直接在html中调用的,但是这里widget定义的对象,是通过mixin引入vue中的;
人才库中例子:
<div class="header">
<div class="header-content">
<div class="header-title"><a href="$homeLink" title="京东人才库"></a></div>
<div class="fr">
<div class="home">
<a href="index.html"><span class="home-icon"></span>首页</a>
<a href="javascript:;" class="total-data" v-on:click="showAll()"><span class="data-icon"></span>全部数据</a>
</div>
<div class="header-user" v-cloak>
<span class="verti-line"></span>
<a class="avatar" href="javascript:;"><img :src="imgurl"></a>
<a class="user-name" href="javascript:;">{{userinfo.userName}}</a>
<a class="resign" href="/logout">退出</a>
</div>
</div>
</div>
</div>
<div class="gradient-line"></div>
widget的(注意没有使用子组件形式<script type="text/x-template" id="xxx"></script>定义),相应的js
define(function (require, exports, module) {
    var public = require('/js/common').public;
    // mixins
    module.exports = {
        data: function () {
            return {
                userinfo: {}
            }
        },
        computed: {
            imgurl: function () {
                return this.userinfo.imgurl ? this.userinfo.imgurl : 'http://img/dd.png';
            }
        },
        mounted: function () {
            var userinfo = public.getLoginData();
            this.userinfo = userinfo;
        }
    }
});
这里定义的对象的字段值data、computed、mounted均是和vue的构造参数一致,方便后面的名称一致得合并;
在vue中定义:
var header =require('/widget/header/header');
new Vue({
    el: '#app',
    mixins: [header],//这里引入,将引入的对象和vue中的相同参数合并
    data:{},
    ...
})
Vue中的“混合”——mixins使用方法的更多相关文章
- vue中extend/component/mixins/extends的区别
		vue中extend/component/mixins/extends的区别 教你写一个vue toast弹窗组件 Vue.extend构造器的延伸 
- Vue中的scoped及穿透方法
		何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ... 
- Vue中使用webpack别名的方法
		在工作中,我们经常会写出这种代码: import MHeader from '../../components/m-header/m-header' @import "../../commo ... 
- Vue中,过滤器的使用方法!
		Vue.js允许自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和v-bind表达式.过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示:(借官方的 ... 
- Vue中的scoped及穿透方法(修改第三方组件局部的样式)
		何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ... 
- vue中操作Dom节点的方法
		1.vue中ref操作dom节点 <template> <div id="app"> <div </div> <button @cl ... 
- Vue中遍历数组的新方法
		1.foreach foreach循环对不能使用return来停止循环 search(keyword){ var newList = [] this.urls.forEach(item =>{ ... 
- vue中组件的四种方法总结
		希望对大家有用 全局组件的第一种写法 html: <div id = "app"> <show></show></div> js: ... 
- Vue中正确使用jQuery的方法
		题主Vue小白,入门demo时想在其中使用jQuery(当然可能是不推荐的做法哈,毕竟俩儿的风格不一样,但万一你就需要呢 _^ ^_),结果遇到问题,最终倒腾解决. 编译报错:$ is undefin ... 
随机推荐
- 4-1 contag_tag:返回HTMLtag.
			jquery已经过时,做一遍,了解其他知识点. contag_tag(name, content_or_options_with_block = nil, options = nil, &bl ... 
- android--------微信 Tinker 热修复 (三)
			前面简单介绍了一下Tinker热修复的使用,包含debug和release,今天就来分享一下微信针对Tinker热修复提供的一个平台,TinkerPatch补丁管理后台. 1:什么是TinkerPat ... 
- sql连接详解
			笛卡尔乘积: A={a, b},集合B={0, 1, 2},则AxB的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}; (AxB≠BxA) ... 
- JSP EL简介
			JSP EL简介:1.语法: ${expression} 2.[ ]与.运算符 EL 提供“.“和“[ ]“两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等 ... 
- hulu
			一. 一开始因为没收到含有共享文档链接的邮件,所以简单自我介绍,聊了几句项目.问了: 1. 玩嗨如果数据库结构变化要怎么办 2. 哈佛项目是否为官方渠道 一直没收到邮件,面试官读网址给我,进到共享文档 ... 
- C++技能重拾
			0.虽然静态成员函数不存在this指针,但还是不能在一个class里声明同名同参的虚函数和静态成员函数. 1.vftable里一个虚函数表是一个指针 2.delete本质,调用析构函数同时释放内存Ob ... 
- 简话Angular 03 Angular内置表达式大全
			一句话: 大多数html标签属性和事件都有一个对应的ng指令 说明:这些指令和原生html最大的区别就是可以动态更新.比如一个div的样式用ng-class后,我们就可以随意应用css class. ... 
- Hibernate优化策略
			https://blog.csdn.net/blueheart20/article/details/21019043 https://blog.csdn.net/yerenyuan_pku/artic ... 
- POJ 2886 线段树单点更新
			转载自:http://blog.csdn.net/sdj222555/article/details/6878651 反素数拓展参照:http://blog.csdn.net/ACdreamers/a ... 
- jsp javabean开发模式
			JSP&&JavaBean开发模式 在jsp+javabean架构中,jsp负责控制逻辑,表现逻辑,业务对象的调用 jsp+javaBean模式适合开发业务逻辑不复杂的web应用,这种 ... 
