首页 > 其他分享 >Vue中mixin混合

Vue中mixin混合

时间:2022-12-22 22:25:42浏览次数:39  
标签:Vue computed 重复 混合 mixin 组件 js data

vue中的mixin可以实现组件中重复代码的高度复用,可以将不同组件中重复的组件选项(如,data、created、mounted、components、computed、watch等)都提取出来,形成一个mixin的js文件,在需要用到这些代码时,引入这个js文件即可。

用法

通过mixins属性添加,mixins属性是一个数组,可以添加多个mixin

// mixin.js
export const mixin = {
    // 混合里面可以写入data, methods, computed...等所有
    data(){
        return {
            name: "XX",
            address: "TianJin",
            age: 18
          }
    },
    methods:{
        showDom(){
            console.log(this.$refs)
        }
    }
}
// .vue
import { mixin } from "../mixin.js" export default { name: "School", data() { return { name: "TT", address: "BeiJing" } }, mixins: [mixin] }

特点

当组件和mixin有重复时:

1.若重复的是data,则组件内原本数据会覆盖mixin中的重复数据,若为对象,则深度合并

2.若重复的是对象(如props、methods、inject、computed等),在组件中若有同名的键名存在,则mixin中的会被覆盖,以组件中定义的为准

3.若重复的是component、directives、filters,则优先使用组件中原本的值;若组件中没有,则去mixin中寻找

标签:Vue,computed,重复,混合,mixin,组件,js,data
From: https://www.cnblogs.com/xt112233/p/16999701.html

相关文章

  • Vue之监视属性
     监视属性watch           1.当被监视的属性变化时,回调函数自动调用,进行相关操作          2.监视的属性必须存在,才能......
  • 彻底理解Vue组件间通信(6种方式)
    在vue的学习中,vue组件间的通信是不得不了解的,在实际开发中,也是非常常用的,所以这里我总结了Vue组件的通信的6种方式,希望能帮助小伙伴们更好更快的去理解Vue组件间的通信组......
  • Vue 里,多级菜单要如何设计才显得专业?
    老生常谈了!虽然我们是Java猿,但是写起来前端代码也不含糊!今天我想来和大家聊聊这个前端的动态菜单,要如何设计才显得专业!还是以我们的TienChin项目为例,大家一起来看看。......
  • Vue2和Vue3使用vue-print-nb实现打印功
    Vue2和Vue3使用vue-print-nb实现打印功Vue2使用vue-print-nb实现打印功Vue3使用vue3-print-nb实现打印功Vue2Vue2.0版本安装方法:npminstallvue-print-nb--save/......
  • Vue生命周期
    概述Vue生命周期函数主要包含8个部分,按顺序分别是:1.beforeCreate(创建前)2.created(创建后)3.beforeMount(载入前)4.mounted(载入后)5.beforeUpdate(更新前)6.updated......
  • vue笔记
    Vue笔记前言使用Vue需要node.js环境,所以这里需要利用nvm安装node.js。node和npm相关的名词很多,比较容易混淆。下面对这些名词做个统一梳理node:一个基于ChromeV8......
  • Vue中 TodoList 示例: 浏览器本地存储、自定义事件
    Vue中TodoList示例:浏览器本地存储、自定义事件1:界面展示情况2:源代码vue.config.jsconst{defineConfig}=require('@vue/cli-service')module.exports=defineConf......
  • vue中读取本地Excel文件
    readExcelFileconstXLSX=require('xlsx')constpath="./file/file.xlsx"//放在public目录下的文件可以直接访问axios.get(path,{responseType:'arraybuffer'......
  • vue获取选中日期的日、周、月、季、年起始结束时间
    dealDate:日期处理(type类型,date日期)constmoment=require('moment');if(type==="0"){returndate+"00:00:00#"+date+"23:59:59";}elseif(type......
  • Cesium+vue 制作风流场【转】
    项目制作大气污染相关模块需要知道风的走向,提出风流场的需求,在此记录。 引用风场类/*****风场类****/exportvarCanvasWindy=function(json,params){//......