混合是一种灵活的分布式复用 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使用方法的更多相关文章

  1. vue中extend/component/mixins/extends的区别

    vue中extend/component/mixins/extends的区别 教你写一个vue toast弹窗组件 Vue.extend构造器的延伸

  2. Vue中的scoped及穿透方法

    何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ...

  3. Vue中使用webpack别名的方法

    在工作中,我们经常会写出这种代码: import MHeader from '../../components/m-header/m-header' @import "../../commo ...

  4. Vue中,过滤器的使用方法!

    Vue.js允许自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和v-bind表达式.过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示:(借官方的 ...

  5. Vue中的scoped及穿透方法(修改第三方组件局部的样式)

    何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组 ...

  6. vue中操作Dom节点的方法

    1.vue中ref操作dom节点 <template> <div id="app"> <div </div> <button @cl ...

  7. Vue中遍历数组的新方法

    1.foreach foreach循环对不能使用return来停止循环 search(keyword){ var newList = [] this.urls.forEach(item =>{ ...

  8. vue中组件的四种方法总结

    希望对大家有用 全局组件的第一种写法 html: <div id = "app"> <show></show></div> js: ...

  9. Vue中正确使用jQuery的方法

    题主Vue小白,入门demo时想在其中使用jQuery(当然可能是不推荐的做法哈,毕竟俩儿的风格不一样,但万一你就需要呢 _^ ^_),结果遇到问题,最终倒腾解决. 编译报错:$ is undefin ...

随机推荐

  1. Linux crontab定时执行任务 命令格式与详细例子(转)

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  2. 【转】Vue.js特点

    作为一名Vue.js的忠实用户,我想有必要写点文章来歌颂这一门美好的语言了,我给它的总体评价是“简单却不失优雅,小巧而不乏大匠”,下面将围绕这句话给大家介绍Vue.js,希望能够激发你对Vue.js的 ...

  3. WebSocket教程(二)

    运行环境:jdk8 tomcat8 无须其他jar包. package com.reach.socketController; import java.io.IOException; import j ...

  4. 关于PermGen space内存溢出错误解决方法

    1.参考: http://blog.csdn.net/fox009/article/details/5633007 http://hi.baidu.com/like_dark/blog/item/19 ...

  5. 059——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Get gcc built-in macros using command gcc -dM -E - < /dev/null

    root@vmuser-virtual-machine:/home/vmuser# gcc -dM -E - < /dev/null #define __SSP_STRONG__ 3#defin ...

  7. 用MyEclipse JPA创建项目(一)

    MyEclipse 3.15 Style——在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA的功能. 阅读本教程时,了解 ...

  8. DevExpress v17.2新版亮点—DevExtreme篇(一)

    用户界面套包DevExpress DevExtreme v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme v17.2 的New Color Sche ...

  9. poshytip漂亮的表单提示插件

    一款很实用的小插件,在表单的输入框会显示提示信息,你可能会用的它. 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...

  10. windows server 账号克隆

    在dos命令行下隐藏用户的方法:   net user 账户 密码 /add 如果在账号后加 $ 符号 这个账户在cmd命令行下是无法看见的 首先我们设置注册表权限 cmd = > regedt ...