Vue(Vue2+Vue3)——34.mixin(混入)

简介: Vue(Vue2+Vue3)——34.mixin(混入)

34 mixin(混入)


mixin:翻译过来叫混入,也有人叫混合,官方叫混入

作用:两个组件共享一个配置(配置必须是一样的),本质就是复用配置

通过案例理解学习如何使用以及作用


34.1 编写案例


提出需求,新增一个组件,当点击学生姓名的时候,弹窗展示学生的姓名,当点击学校姓名的时候,弹窗展示学校的姓名

虽然实现了效果,但是不够好

这些代码都是一样的,如果能进行封装下复用就更好了,这时候就可以借助mixin进行混入了


34.2 创建mixin文件


创建mixin.js文件,写成一个对象进行用常量接收并且暴露


34.3 引用混入


创建好并写好对应的代码后,就可以在需要用的组件里面进行引入了


34.4 配合混入


引入完之后,需要加入一个全新的配置项:mixins,它的值是一个数组,和props有点像

测试一下


34.5 mixin里面都可以写什么?


只要是组件中能写的属性,mixin都可以写,比如这里我写了一个挂载函数

两个组件当然就是输出两次了

再比如我在混合中定义一个data,里面分别有x,y

分别引入并使用

发现组件中也有混合中的x和y了


34.6 混入和组件优先级


刚才在混入里面定义了x,如果在组件中也有一个x,那么谁的优先级更高呢

通过测试发现是组件的优先级大于混合


34.7 一个坑


上面刚验证过,优先级是组件大于混入,准确来说,如果data中的数据,methods中的方法发生冲突确实是组件的优先级大于混入的,但是如果是一些生命周期钩子函数,就会以混入的优先级大于组件的优先级,并且都会保留


34.8 全局混入


刚才举例的都是局部混入,如果想实现全局混入,可以这么做

在main.js里面引入混入并使用,因为main.js是程序的入口

这样写就会在全部的vm和vc里面加入混入,可能会导致性能降低,根据自需求和场景酌情使用即可



34.9 总结


mixin(混入)

功能:可以把多个组件共用的配置提取成一个混入对象

  • 使用方式:
  •  1 定义混入 例如:{data(){}}
  •  2 使用混入 例如:(1)全局混合 Vue.mixin(xxx) (2)mixins:['xxx']
相关文章
|
3天前
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
3天前
|
JavaScript 算法 API
Vue 3有哪些新特性
【8月更文挑战第16天】Vue 3有哪些新特性
20 1
|
3天前
|
JavaScript
如何在Vue页面中引入img下的图片作为背景图。../的使用
这篇文章介绍了在Vue页面中如何引入`img`目录下的图片作为背景图,提供了两种使用相对路径的方法。第一种是使用`../assets/img/`作为路径引入图片,第二种是使用`../../assets/img/`作为路径。文章还展示了使用这些方法的代码实现和效果展示,并鼓励读者学无止境。
如何在Vue页面中引入img下的图片作为背景图。../的使用
|
3天前
|
JavaScript
如何查看Vue使用的版本
这篇文章介绍了如何在项目中查看Vue及其相关库的版本信息,比如element-ui和element-china-area-data。要查看Vue的版本,需要查看项目中的`package.json`文件,在`dependencies`部分可以找到Vue的版本号。如果需要查询不同版本的兼容性,可以访问相应的官方文档或资源网站。
|
3天前
|
JavaScript
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
这篇文章介绍了在Vue项目中如何实现执行删除等危险操作时的二次确认机制,使用Element UI的`el-popconfirm`组件来弹出确认框,确保用户在二次确认后才会执行删除操作。
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
|
4天前
|
前端开发
StringBoot+Vue实现游客或用户未登录系统前、可以浏览商品等信息、但是不能购买商品或者加入购物车等操作。登录系统显示用户的登录名(源码+讲解)
这篇文章介绍了使用StringBoot+Vue实现用户登录状态判断的方法,包括前端加载用户信息和后端设置session的源码示例。
|
4天前
|
JavaScript 编译器
成功解决:Module build failed: Error: Vue packages version mismatch
这篇文章记录了解决Vue项目中遇到的"Module build failed: Error: Vue packages version mismatch"错误的步骤,原因是项目中Vue依赖的版本不一致,解决方法是删除`node_modules`后重新安装指定版本的Vue和`vue-template-compiler`,确保版本匹配,最终成功运行项目。
成功解决:Module build failed: Error: Vue packages version mismatch
|
4天前
|
JavaScript
在Vue中使用Avue、配置过程以及实际应用
这篇文章介绍了作者在Vue项目中集成Avue组件库的完整过程,包括安装、配置和实际应用,展示了如何利用Avue实现动态表单和数据展示的功能。
在Vue中使用Avue、配置过程以及实际应用
|
4天前
|
JavaScript
Vue devDependencies 与 dependencies 能别
Vue devDependencies 与 dependencies 能别
10 3
|
4天前
|
JavaScript
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
该博客文章介绍了如何在Vue 2框架下实现前后端分离的商品信息展示和详情页跳转,包括排序筛选、详情展示、加入购物车和分享功能。
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)