美文网首页
Vue 之 mixins 1.0 简单使用

Vue 之 mixins 1.0 简单使用

作者: 人话博客 | 来源:发表于2018-12-13 16:11 被阅读0次

先来一段官方的解释:

mixins 选项接受一个混入对象的数组。这些混入实例对象可以像正常的实例对象一样包含选项,他们将在 Vue.extend() 里最终选择使用相同的选项合并逻辑合并。

反正对于初学者的我来说,看起来还好,但没有太多的帮助.


我所理解的 mixins

mixins 翻译过来就是混合的意思.

一个非常常见的场景.

很多组件都有隐藏和显示的功能.
可能是一个按钮,可能是鼠标移入移出.

// 第一个是鼠标移入移除
Vue.component('tooltip',{
    template:`
      <div>
        <span @mouseenter='show' @mouseleave='hidden'>预览内容</span>
        <p v-show='visiable'>
            Lorem ipsum, dolor sit amet consectetur adipisicing elit. Perspiciatis expedita sequi nobis, quia atque nesciunt fuga ab, fugiat cupiditate, quibusdam impedit vitae. Voluptas quam placeat, quas ipsum mollitia voluptatem. Ipsum?
          </p>
      </div>
    `,

    data() {
      return {
        visiable:false
      }
    },
    methods:{
      show() {
        this.visiable = true
      },
      hidden() {
        this.visiable = false
      }
    }
  })

// 第二个是点击
  Vue.component('popup',{
    template:`<div>
        <button @click='toggle'>Popup</button>
        <div v-if='visiable'>
            <h4>title</h4>
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium
          </div>
      </div>`,

      data() {
      return {
        visiable:false
      }
    },
    methods:{
      toggle() {
        this.visiable = !this.visiable
      },
    }
  })

效果如图:

mixins.gif

首选看分析一下:

  • 两个组件的功能很类似
  • 都是隐藏和显示
  • 一个是鼠标点击按钮
  • 一个是鼠标的 mouseenter & mouseleave
  • 他们内部都是使用 visiable 属性,来控制元素的隐藏和显示.

因为功能类似且有部分重合,其实我们可以把这一些代码定义在另外一个地方,形成一个所谓的 mixins

let mixinScope = {
    data() {
      return {
        visiable:false
      }
    },
    methods:{
      toggle() {
        this.visiable = !this.visiable
      },
      show() {
        this.visiable = true
      },
      hidden() {
        this.visiable = false
      }
      
    }
  }

然后在两个组价内部使用 mixins:[] 来引用这个公用的 mixins.

Vue.component('tooltip',{
    template:`
      <div>
        <span @mouseenter='show' @mouseleave='hidden'>预览内容</span>
        <p v-show='visiable'>
            Lorem ipsum, dolor sit amet consectetur adipisicing elit. Perspiciatis expedita sequi nobis, quia atque nesciunt fuga ab, fugiat cupiditate, quibusdam impedit vitae. Voluptas quam placeat, quas ipsum mollitia voluptatem. Ipsum?
          </p>
      </div>
    `,
    // 引用一段公用的代码段
    mixins:[mixinScope]
}


Vue.component('popup',{
    template:`<div>
        <button @click='toggle'>Popup</button>
        <div v-if='visiable'>
            <h4>title</h4>
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium
          </div>
      </div>`,
      mixins:[mixinScope]
    }


运行结果

mixins.gif

总结:

  • mixins 混合,可以封装一些组件的公用代码片段.
  • 利用mixins:[] ,将这些公用的代码片段功能无缝的接入到当前的组件中.
  • mixins:[] 是数组,说明后面可以接多个 mixinsScope
  • 组件接入了 mixins 也不影响自己内部重新定义data,methods之类的属性.
    • 实际上,如果重名了,后者会覆盖前者.
    • 没有重名,就把两者结合在一起.

相关文章

  • Vue 之 mixins 1.0 简单使用

    先来一段官方的解释: mixins 选项接受一个混入对象的数组。这些混入实例对象可以像正常的实例对象一样包含选项,...

  • 16-Vue之混入mixin的使用

    Vue之混入mixins(非完整版) 一、mixins基础介绍(不使用cli版本) 1.首先我们看一下vue官网对...

  • vue2中的mixins

    mixins: 混合对象, 功能类似于Vue.extend(); 使用时,在组件的选项中添加mixins: [mi...

  • Vue 之 Mixins (混入)

    Mixins Mixins是一种分发Vue组件中可复用功能的非常灵活的一种方式。 什么时候使用Mixins 页面的...

  • vue插件--滚动信息插件

    基础要求 知道如何使用vue-cli熟悉vue1.0、了解sass 准备工作 使用vue-cli安装vue1.0 ...

  • Vue 混入(mixins和Vue.mixin)

    1.mixins和Vue.mixin mixins 混入 (mixins) 是一种分发 Vue 组件中可复用功能的...

  • Vue 之 Mixins (混入)简单易懂

    混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选...

  • Vue之mixins

    mixins中可以包含公共的components,例如: 如果在使用的时候出现需要注册组件的问题,你需要检查引用组...

  • vue mixins的使用

    mixins是一种将组件功能复用的方式,简单来说就是讲组件的数据、钩子、方法、等封装在一个对象里面,然后在组建中m...

  • vue + mixins 使用实例

    mixins可写入的模块 mixins可写入组件export default 中的所有内容。data , meth...

网友评论

      本文标题:Vue 之 mixins 1.0 简单使用

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