美文网首页
Vue.js基础-13-混入对象(应用示例,同名函数优先级,选项

Vue.js基础-13-混入对象(应用示例,同名函数优先级,选项

作者: 玄德公笔记 | 来源:发表于2022-10-27 22:02 被阅读0次

1. 混入对象

1.1 简单应用

语法示例

  • 定义混入对象
      var 混入对象名 = {
        created: 操作
      };
  • 组件中引用混入对象
      new Vue({
        component: {
          mixins: [混用对象名],
        }

完整示例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-song</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div id="databinding"></div>


    <script type="text/javascript">
      new Vue({
        el: "#databinding",
        component: {
          mixins: [myMixin],
        }
      });
      // 定义一个混入对象
      var myMixin = {
        created: document.write("混入实例"),
      };

    </script>
  </body>
</html>

1.2 定义一个组件引用混入对象

语法示例

  • 定义混入对象
      var 混入对象名 = {
        created: 操作
      };
  • 定义一个组件来扩展vue实例
      var 组件名 = Vue.extend({
        mixins: [myMixin],
      });
  • 初始化组件实例
new 组件名();

完整示例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-song</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div id="databinding"></div>
    <script type="text/javascript">
      var vm = new Vue({
        el: "#databinding",
      });
      // 定义一个混入对象
      var myMixin = {
        created: document.write("混入实例"),
      var Component = Vue.extend({
        mixins: [myMixin],
      });
      new Component();
    </script>
  </body>
</html>

2.3 混入对象使用函数

示例(在混入对象中直接定义函数)

将上例替换如下:

      var myMixin = {
        created: function () {
          document.write("混入实例");
        },
      };

示例(混入对象引用methods中函数)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-song</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div id="databinding"></div>
    <script type="text/javascript">
      var vm = new Vue({
        el: "#databinding",
        data: {},
        methods: {},
      });
      var myMixin = {
        created: function () {
          //引用methods中函数
          this.startmixin();
        },
        methods: {
          startmixin: function () {
            document.write("混入实例");
          },
        },
      };
      var Component = Vue.extend({
        mixins: [myMixin],
      });
      var component = new Component();
    </script>
  </body>
</html>

2. 同名函数优先级(vue实例 VS 混入对象)

2.1 选项合并(实例下直接选项)

说明

Vue 实例与混入对象包含了相同的方法。两个函数将合并,并且一起输出。

完整示例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-宋</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div id="databinding"></div>
    <script type="text/javascript">
      var mixin = {
        created: function () {
          document.write("混入调用" + "<br>");
        },
      };
      new Vue({
        mixins: [mixin],
        created: function () {
          document.write("组件调用" + "<br>");
        },
      });
    </script>
  </body>
</html>
  • 结果输出
混入调用
组件调用

2.2 选项优先级(实例下methods的选项)

说明

Vue实例和混入对象实例中的methods下有同名函数,则Vue实中的methods下的同名函数优先级高

完整示例

说明:

  • 混入对象:methods中包含两个方法,一个无同名的(mixinfunction),一个和vue实例中同名的(samemethod)。
  • vue实例:methods包含两个方法,一个无同名的(vmfunction),一个和混入对象中同名的(samemethod)。

按预期,mixinfunction、vmfunction和vue实例中的 samemethod 将被打印出来

  • 代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-SONG</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <div id="databinding"></div>
    <script type="text/javascript">
      var mixin = {
        methods: {
          mixinfunction: function () {
            document.write("混入对象中的方法" + "<br>");
          },
          samemethod: function () {
            document.write("混入对象中的同名方法" + "<br>");
          },
        },
      };
      var vm = new Vue({
        mixins: [mixin],
        methods: {
          vmfunction: function () {
            document.write("Vue实例中的方法" + "<br>");
          },
          samemethod: function () {
            document.write("Vue中同名方法" + "<br>");
          },
        },
      });
      vm.mixinfunction();
      vm.vmfunction();
      vm.samemethod();
    </script>
  </body>
</html>
  • 结果显示
混入对象中的方法
Vue实例中的方法
Vue中同名方法

3. 全局混入

  • 完整代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>CROW-SONG</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <script type="text/javascript">
      // 为自定义的选项 'myOption' 注入一个处理器。
      Vue.mixin({
        created: function () {
          var myOption = this.$options.vueOption; 
          document.write(myOption);          
        },
      });

      new Vue({
        vueOption: "HELLO !",
      });

    </script>
  </body>
</html>
  • 结果显示
HELLO !

image.png

相关文章

  • Vue.js基础-13-混入对象(应用示例,同名函数优先级,选项

    1. 混入对象 1.1 简单应用 语法示例 定义混入对象 组件中引用混入对象 完整示例 1.2 定义一个组件引用混...

  • 温故而知新之VUE(五)

    混入 混入mixins是一种分发vue组件中可复用功能的非常灵活的方式 #选项合并当组件和混入对象有同名选项时,会...

  • vue的混入mixin

    基础 当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。个人理解就是以另外一个独立的对象扩...

  • vue mixin

    合并选项当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行合并 数据对象在内部会进行递归合并,在发生冲突时...

  • mixins相关

    当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。 比如,数据对象在内部会进行浅合并 (一层属性深度),...

  • mixin (混入)

    混入对象包含任意组件选项,用于分发组件的可复用功能;组件使用混入对象时,混入对象的组件选项混合到该组件本身的选项中...

  • VUE复习笔记19(混入)

    混入 基础 混入(mixins)是一种分发 vue 组件可复用功能中一种特别灵活的方式。混入对象可以包含任意的选项...

  • Vue中的高级语法笔记

    mixin混入 mixin混入:1.组件data优先级高于mixin data优先级 生命周期函数,先执行mixi...

  • 【Dart】Dart类与对象

    类与对象 类 继承 抽象类 接口 混入 泛型 枚举类类-简介 构造器 (构造函数) 默认构造函数与类同名的函数,在...

  • ★05.访问Arrays

    基础类型数组 与 对象数组 基础类型数组 函数表 简单示例:GetArrayRegion() 简单示例...

网友评论

      本文标题:Vue.js基础-13-混入对象(应用示例,同名函数优先级,选项

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