vue中混入mixins的使用方法
目录
- 前言
- 使用方法
- 总结
前言
Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的。同时, 这个mixins 也分为局部混入和全局混入
vue中的解释是这样的,如果觉得语言枯燥的可以自行跳过嘿~
混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。应用场景
下面先说一下 mixins 的应用场景, 假设现在我们两个组件, 当这两个组件被点击时, 都要 console.log 一下, data 中的一个name 属性的值
第一个组件是 school组件,如下图
第二个组件是 student组件
我们可以看到, 不同的两个组件, 有一个相同功能的方法, 这种写法会导到, 我们要在两个组件中写出同样的代码, 两个组件还可以接受, 如果有 200个组件都要这样的功能, 是不是很烦人的感觉, 这时我们就可以使用 mixins 来复用代码
使用方法
1、创建一个 mixin 文件, 并把相应的数据 暴露出去
既然暴露出来的, 那肯定是给别人用的, 当然是给组件用的
2、先说一个局部混入, 局部混入, 就是说在 VueComponet 中一个个混中, 全局混入呢, 那当然就是在 Vue (Vm) 对象上混入
下面是局部混入的写法
同样的, 对student 组件也进行这样的操作
完成后, 当我们点击时, 功能同样的可以完成, 而 showName 的方法, 就是我们通过 mixins 混入的, 我们只写了一次
以上就是局部混入的,它是在每一个 VueComponet中都要混入一下
3、说一下全局混入, 我们把它混入到 Vue 的对象中, 这样, vue 下的 所有组件,都会有这个方法,不用每一个组件去写了,这种写法是在 确定所有的组件都需要这个方法或属性时才用的, 一般我们不会这样用的
方法如下
在 main.js文件中 引入
以上就是全局混入, 一般用的不多, 因为, 所有组件, 所有组件, 所有组件 都会被混入。 很少有这种需求
最后, 就要说一下, 混入的方法, 属性, 钩子函数, 如果本地已有的话, 产生冲突会是什么情况,如果本组件中有和混入的方法, 属性, 同名字的, 以本组件中的为主, 混入的不生效
但是 生命周期钩子函数 不管是本组件中的, 还是混入的, 都是会生效的, 并且, 会先执行混入的生命周期钩子, 再执行本组件的生命周期钩子
总结
到此这篇关于vue中混入 mixins使用方法的文章就介绍到这了,更多相关vue混入 mixins使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Vue混入mixins滚动触底的方法
前言 在app端常常看到类似加载数据的动画,接下来我们来实现滚动触底加载动画提示,以及如何复用这些逻辑. 如何判断滚动触底 来看下几张图: 情况一: 当文档高度还为超过可视区域高度时,不存在滚动,所以也没有滚动触底 情况二: 当文档高度超过可视区域的高度时,还有剩余的文档没有滚动完,也就是说 可视区域高度 + 滚动高度 < 文档高度 ,此时没有达到滚动触底的条件 情况三: 文档高度大于可视区域,并且滚动到文档底部, 也就是说 可视区域高度 + 滚动高度 = 文档高度 判断是否滚动到底 经过上
-
深入了解Vue.js 混入(mixins)
混入 (mixins)定义了一部分可复用的方法或者计算属性.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 来看一个简单的实例: var vm = new Vue({ el: '#databinding', data: { }, methods : { }, }); // 定义一个混入对象 var myMixin = { created: function () { this.startmixin() }, methods: { startmix
-
讨论vue中混入mixin的应用
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合"进入该组件本身的选项. 即 mixin 在引入组件之后,会将组件内部的内容如data.method等属性与父组件相应内容进行合并.相当于在引入后,父组件的各种属性方法都被扩充了. 比如在两个不同的组件的组件中调用sayHi方法,需要重复定义,倘若方法比较复杂,代码将更加冗余,但使用mixins 就相对比较简单了. 首先
-
Vue 详解mixins混入用法大全
目录 前言 一.什么是Mixins? 二.什么时候使用Mixins? 三.如何创建Mixins? 四.如何使用Mixins? 五.Mixins的特点 六.Mixins合并冲突 七.与vuex的区别 八.与公共组件的区别 前言 当我们的项目越来越大,我们会发现组件之间可能存在很多相似的功能,你在一遍又一遍的复制粘贴相同的代码段(data,method,watch.mounted等),如果我们在每个组件中去重复定义这些属性和方法会使得项目出现代码冗余并提高了维护难度,针对这种情况官方提供了Mixin
-
Vue之mixin混入详解
目录 局部混入 全局混入 总结 局部混入 <template> <div> <h2 @click="showName">学生姓名:{{name}}</h2> <h2>学生性别:{{sex}}</h2> </div> </template> <script> //引入一个混合 import { hunhe,hunhe2 } from '../mixin' export defa
-
Vue之Mixins(混入)的使用方法
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合"进入该组件本身的选项. 当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行"合并". 比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先. var Mymixin = { data: function(){ return { message: 'hello', foo: 'ab
-
vue中混入mixins的使用方法
目录 前言 使用方法 总结 前言 Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的.同时, 这个mixins 也分为局部混入和全局混入 vue中的解释是这样的,如果觉得语言枯燥的可以自行跳过嘿~ 混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项.应用场景 下面先说一下 mixins 的应用场景, 假设现在我们两个组件, 当这两个组件被点击时,
-
vue中的mixins混入使用方法
目录 作用 使用方法 全局混入 局部混入 作用 用简单的话去概括就是一种分发vue组件中的功能可以复用一个技术,使用这个技术我们可以把需要复用的内容封装成一个vue组件,方便下次使用方便 使用方法 首先在src中去创建一个自己的文件夹,然后把要封装的内容放入到这个文件夹,方便后续的调用 let mymixin={ methods:{ handleBtn(){ alert('封装的内容已经触发!') } } } export default mymixin 全局混入 全局混入就是我们可以把封装好的
-
Vue 中使用 CSS Modules优雅方法
CSS Modules:局部作用域 & 模块化 CSS Modules 为每一个局部类赋予全局唯一的类名,这样组件样式间就不会相互影响了.如: /* button.css */ .button { font-size: 16px; } .mini { font-size: 12px; } 它会被转换为类似这样: /* button.css */ .button__button--d8fj3 { font-size: 16px; } .button__mini--f90jc { font-size
-
Vue中引入样式文件的方法
一.在vue中使用scss 首先进行安装如下依赖: cnpm i sass-loader node-sass -D 二.vue中引入样式文件 1)在index.html模板html文件中引入,这种方式引入的原样编译在生成的html文件中,如果想要通过link引入外部的样式文件,建议使用这种方式: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>2imis&
-
对vue中v-if的常见使用方法详解
使用过Vue的小伙伴一定使用过v-if 这个属性,但是这个属性主要是来干什么的呢,他得用途是那些? 这里我总结了一下,v-if使用一般有两个场景: 1- 多个元素 通过条件判断展示或者隐藏某个元素.或者多个元素 2- 进行两个视图之间的切换 下面我写了两个例子,是Vue官方的简单实例. 第一个实例实现了 type等于不同值,A,B,C 三个元素的展示情况. 第二个例子实现了,点击按钮实现两个视图的切换. <!DOCTYPE html> <html lang="en"&
-
对vue中methods互相调用的方法详解
如下所示: 最近在学习vue,并用vue+vue-router+axios+elementUI做了一个pos收银系统的前端页面,但是中间遇到methods里的方法调用问题.本身源码是没有调用的,但是我想直接调用多方便,结果出错了--然后百度了一波,终于解决了~ 分享并做个笔记. delAllOrderList:function(goods) { this.tableData = []; this.totalCount = 0; this.money = 0; }, checkout:functi
-
详解Vue中的scoped及穿透方法
scoped的由来 css一直有个令人困扰的作用域问题:即使是模块化编程下,在对应的模块的js中import css进来,这个css仍然是全局的.为了避免css样式之间的污染,vue中引入了scoped这个概念. 在vue文件中的style标签上,有一个特殊的属性:scoped.当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件.通过设置该属性,使得组件之间的样式不互相污染.如果一个项目中的所有style标签全部加上了scoped,相当于实现了样式的模块化. 但是这
-
vue中使用props传值的方法
1.静态传值(在父组件中赋值好props中属性的值传递给子组件) 父组件 <template> <div> <input v-model="message"> <child message="hello"></child> </div> </template> <script> import child from './components/child.vue' expo
-
Vue中遍历数组的新方法实例详解
1.foreach foreach循环对不能使用return来停止循环 search(keyword){ var newList = [] this.urls.forEach(item =>{ if(item.name.indexOf(keyword) != -1){ newList.push(item) } }) return newList } 2.filter item对象就是遍历数组中的一个元素,includes是es6中的新方法,在search方法中直接返回新数组 search(key
随机推荐
- Windows下Redis的安装使用图解
- Apache下通过shell脚本提交网站404死链的方法
- 25个最好的免费Eclipse插件
- iOS中UITableview错位的问题怎么修复
- python实现基本进制转换的方法
- 《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
- 在CODEIGNITER中 在CI中引入外部的JS与CSS呢
- Android 中TextView中跑马灯效果的实现方法
- Centos6.5在线安装mysql 8.0详细教程
- Android编程简单实现雷达扫描效果
- JS折半插入排序算法实例
- 论坛20大经典变态楼主主题和回复,暴强!
- 理解javascript中的with关键字
- Java读取并下载网络文件的方法
- Serv_U 安全设置以后出现530 Not logged in, home directory does not exist的解决方法
- C#生成影像金字塔的原理实例
- C# 基础入门--关键字
- Android Button按钮的四种点击事件
- Python实现简易版的Web服务器(推荐)
- React diff算法的实现示例