纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Vue.js之mixins混合 Vue.js之mixins混合组件详解

猫老板的豆   2021-09-14 我要评论
想了解Vue.js之mixins混合组件详解的相关内容吗猫老板的豆在本文为您仔细讲解Vue.js之mixins混合的相关知识和一些Code实例欢迎阅读和指正我们先划重点:vue.js,mixins,vue.js,mixins混合下面大家一起来学习吧

混合以一种灵活的方式为组件提供分布复用功能混合对象可以包含任意的组件选项当组件使用了混合对象时混合对象的所有选项将被“混入”组件自己的选项中

一、Mixins的基本用法

现在有个数字点击递增的程序假设已经完成了这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”.

代码实现过程:

<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    var addLog = {
    	// 将updated钩子混入到vue实例中
        updated() {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

当点击按钮时会触发混入的 addLog 中的 updated 方法

二、mixins的调用顺序

  • 从执行的先后顺序来说都是 混入的先执行然后构造器里的再执行
  • data中的属性 和 methods里的方法会覆盖构造器覆盖混入的属性和方法
  • 生命周期的钩子则会调用2遍不会覆盖先调用混入钩子再调用构造器钩子

在上边的代码的构造器里我们也加入了updated的钩子函数:

<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    var addLog = {
        updated : function () {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        updated: function () {
            console.log("构造器里的updated方法")
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

三、全局混入方式

全局混入的执行顺序要前于混入和构造器里的方法

<div id="app">
    <p>num:{{ num }}</p>
    <P><button @click="add">增加数量</button></P>
</div>


<script>
    Vue.mixin({
        updated: function () {
            console.log('我是全局被混入的');
        }
    })

    var addLog = {
        updated : function () {
            console.log("数据放生变化,变化成" + this.num + ".");
        }
    }

    var app = new Vue({
        el: '#app',
        data: {
            num: 1
        },
        methods: {
            add: function () {
                this.num++;
            }
        },
        updated: function () {
            console.log("构造器里的updated方法")
        },
        mixins: [addLog], //混入
    })
</script>     

这里写图片描述

顺序总结:全局混入 > 局部混入 > 构造器

两个对象键名冲突时取组件对象的键值对

当混入和组件对象中都有test方法(重名)时最终的值取组件对象的键值对

  <div id="app">
      <p>num:{{ num }}</p>
      <P>
          <button @click="add">增加数量</button>
      </P>
  </div>

  <script>
      var addLog = {
          updated: function () {
              console.log("数据放生变化,变化成" + this.num + ".");
              this.test();
          },
          methods: {
              test: function () {
                  console.log('混入中的test')
              }
          }
      }

      var app = new Vue({
          el: '#app',
          data: {
              num: 1
          },
          methods: {
              add: function () {
                  this.num++;
              },
              test:function(){
                  console.log('组件对象中的test')
              }
          },
          mixins: [addLog], //混入
      })
</script>

这里写图片描述


相关文章

猜您喜欢

  • 消息队列及RabbitMQ 详解消息队列及RabbitMQ部署和使用

    想了解详解消息队列及RabbitMQ部署和使用的相关内容吗somenzz在本文为您仔细讲解消息队列及RabbitMQ的相关知识和一些Code实例欢迎阅读和指正我们先划重点:消息队列,RabbitMQ部署和使用下面大家一起来学习吧..
  • Java 线程创建 Java线程创建的四种方式总结

    想了解Java线程创建的四种方式总结的相关内容吗威斯布鲁克.猩猩在本文为您仔细讲解Java 线程创建的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Java,线程创建,Java,线程下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式