分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Vue.js 基础学习之混合mixins

发布时间:2023-09-06 01:08责任编辑:郭大石关键词:js

混合以一种灵活的方式为组件提供分布复用功能。混合对象可以包含任意的组件选项。当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中。

当混合对象与组件包含同名选项时,这些选项将以适当的策略合并。例如,同名钩子函数被并入一个数组,因而都会被调用。另外,混合的钩子将在组件自己的钩子之前调用。

我自己的理解是:混合就是将一些相似组件的相同部分用一个对象封装起来,实现代码的复用。当然如果在组件中重新定义某些东西就会覆盖掉来自混合的相应部分。

混合的使用:首先将公共部分写入一个对象,在组件中添加 mixins属性 ,并且这个属性的值是一个数组,数组中就是混合对象。

如:var base = {}; 在组件中: mixins : [base],

<div id="app"> ???????<show-hide-title></show-hide-title> ???????<show-hide-content></show-hide-content> ???</div>
<script> ???var base = { ???????data : function(){ ???????????return { ???????????????visible : false, ???????????}; ???????}, ???????methods : { ???????????show : function(){ ???????????????this.visible = true; ???????????}, ???????????hide : function(){ ???????????????this.visible = false; ???????????}, ???????????toggle :function() { ???????????????this.visible = !this.visible; ???????????} ???????} ???}; ???Vue.component(‘show-hide-title‘,{ ???????template : ` ???????<div> ???????<span @mouseenter=‘show‘ @mouseleave=‘hide‘>鼠标移入显示/移出隐藏标题</span> ???????<h1 v-if=‘visible‘>这是标题</h1> ???????</div> ???????`, ???????mixins : [base], ???}); ???Vue.component(‘show-hide-content‘,{ ???????template :` ???????<div> ???????<button @click=‘toggle‘>显示/隐藏内容</button> ???????<div v-if="visible"> ???????<p><a @click=‘hide‘ href="#">关闭内容</a></p> ???????这是内容Lorem ipsum dolor sit amet, consectetur adipisicing elit. Alias quibusdam eligendi dolor, 
      mollitia animi maiores, quod saepe dolores! Dolorum non porro iusto quod facere consequuntur
      dolorem reprehenderit, cumque reiciendis sit. ???????</div> ???????</div> ???????`, ???????mixins : [base], ???}); ???new Vue({ ???????el: ‘#app‘, ???});</script>

以上代码中两个组件一个是通过鼠标的移入与移出来控制标题的显示与隐藏,另一个是通过点击按钮来控制内容的显示与隐藏,他们有一部分公共内容用base封装起来,分别在两个组件中加入混合就可以了。

Vue.js 基础学习之混合mixins

原文地址:http://www.cnblogs.com/huzhuo/p/7476352.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved