美文网首页
Vue混入(二)继承后方法重写

Vue混入(二)继承后方法重写

作者: fanren | 来源:发表于2021-03-13 15:42 被阅读0次

前言

iOS开发中,子类继承父类的属性与方法时,会对父类的属性与方法进行重写;而在Vue混入的时候,可能有点区别

一、数据的重写

如果组件内与混入对象有相同的数据时,组件内的数据会覆盖混入对象内的数据;

  • 混入对象
export default {
  data() {
    return {
        username: "张三"
    }
  },
};
  • 组件
<template>
  <div class="home">
    <div>
      {{ username }}
    </div>
  </div>
</template>

<script>
import CommonMins from '@/views/CommonMins' 
export default {
  name: 'Home',
  mixins: [CommonMins],
  data() {
    return {
      username: "王五"
    }
  },
}
</script>
  • 展示结果


    截图

展示结果是王五而不是张三,说明组件内的username覆盖了混入对象内的username

二、普通方法的重写

如果组件与混入对象有相同的方法时,组件内的方法会覆盖混入对象的方法;

  • 混入对象
export default {
  data() {
    return {
        username: "张三"
    }
  },
  methods: {
    loadData() {
      this.username = "李四";
    },
  },
};
  • 组件
<template>
  <div class="home">
    <div>
      {{ username }}
    </div>
  </div>
</template>

<script>
import CommonMins from '@/views/CommonMins' 
export default {
  name: 'Home',
  mixins: [CommonMins],
  mounted() {
    this.loadData()
  },
  methods: {
    // 组件内的方法会覆盖混入对象的方法
    loadData() {
      this.username = "赵六"
    }
  }
}
</script>
  • 结果


    截图

三、钩子函数的重写
在混入对象也可提前定义钩子函数;
当组件与混入对象定义了相同的钩子函数时,在运行时,不会覆盖混入对象的钩子函数,而是会先执行混入对象的钩子函数,然后执行组件内的钩子函数;

  • 混入对象
export default {
  data() {
    return {
        username: "张三",
        age: "12"
    }
  },
  mounted() {
      this.username = "李四"
      this.age = 13
  },
};
  • 组件
<template>
  <div class="home">
    <div>
      {{ username }}
    </div>
    <div>
      {{ age }}
    </div>
  </div>
</template>

<script>
import CommonMins from '@/views/CommonMins' 
export default {
  name: 'Home',
  mixins: [CommonMins],
  mounted() {
    this.age = 16
  }
}
</script>
  • 运行效果


    截图

上述工程中,会先运行混入对象的mounted,然后运行组件内的mounted

相关文章

  • Vue混入(二)继承后方法重写

    前言 iOS开发中,子类继承父类的属性与方法时,会对父类的属性与方法进行重写;而在Vue混入的时候,可能有点区别 ...

  • Java自学-接口与继承 重写

    Java 重写方法 子类可以继承父类的对象方法 在继承后,重复提供该方法,就叫做方法的重写 又叫覆盖 Overri...

  • 自定义布局

    从 Panel 继承 重写 MeasureOverride 方法重写 ArrangeOverride 方法

  • 2018-08-02 day14 面向对象(增强)

    方法重写 继承后,字类可以拥有除父类继承的内容以外的其他内容 1.关于方法 1).可以直接添加新方法2).重写:a...

  • 继承,重写,覆盖,重载,多态区分

    重写(override) = 覆盖一般是子类继承父类后,重写其中的方法。重写有几个需要注意的规则:1、重写方法的参...

  • August 2 -day 15-Python面向对象3

    重写 继承后,子类可以拥有除父类继承的内容以外的其他的内容 关于方法1).在子类中可以直接添加其他的方法2).重写...

  • java实现多线程的6种方式

    java实现多线程基本上有5种办法,第一继承Thread类,重写run方法;第二实现继承Runnable接口,重写...

  • 继承

    一. 单继承 继承的概念一般子女继承父辈 2.多继承 3.重写、调用父类方法 二. 静态方法和类方法 1、类方法 ...

  • POP面向协议编程

    一、继承 LGMonkey继承LGAnimal LGMonkey重写了leg属性、和eat方法 二、协议 实现协议...

  • swift - 自定义view

    继承自uiview 重写初始化方法 重写布局方法

网友评论

      本文标题:Vue混入(二)继承后方法重写

      本文链接:https://www.haomeiwen.com/subject/zqznqltx.html