美文网首页
Vue mixin 混入及自定义Vue插件

Vue mixin 混入及自定义Vue插件

作者: Do_Du | 来源:发表于2020-06-02 17:56 被阅读0次

    一、mixin混入

    mixin即合并公共方法: 可以设置通用的方法或者变量
    外部mixin 如下:
    全局mixinVue.mixin = ({})

    export const m1 = {
      data(){
          return {
              nickname: '张三' // data的变量会被单页里定义的给覆盖
          }
      },
      mounted(){
          console.log('123') // 但是mounted是不会覆盖的,这里会执行
      },
      methods: {
        sayHello() {
            console.log('hello')
        }
      }
    }
    
    new Vue({
      el: '#app',
      mixins: [m1],
      data() {
        return {
            nickname: '李四', // 若在本vue中也定义了同名变量,则这个值会覆盖mixins定义的
            age: 20
        }
      },
      mounted(){
          console.log('456') // 但是mounted是不会覆盖的,这里也会执行
          this.sayHello();
      }
    })
    

    {{nickname}}-{{age}}若在单页里不定义nickname也能拿到nickname,因为minxins混入了原先已经定义好的

    二、Vue 自定义插件

      var my_plugin = {
          install (Vue, options) { // 这个必须
            // 混入
            Vue.mixin({
              data(){
                return {
                    nickname: '张三' // data的变量会被单页里定义的给覆盖
                }
              },
              mounted(){
                console.log('123') // 但是mounted是不会覆盖的,这里会执行
              },
              methods: {
                sayHello() {
                  console.log('hello')
                }
              }
            })
    
            // 自定义组件
            Vue.component("sb",{
              template: "<h1>simba组件</h1>"
            })
    
            // 自定义指令
            Vue.directive("focus", {
              inserted(el) {
                el.focus()
              }
            })
    
            // 扩展属性
            Vue.prototype.$log = console.log
    
            if (options && options.debug){
              
            }
          }
        }
    

    插件写好后 使用Vue.use(my_plugin) 安装下即可使用
    在vue文件中调用

    <sb/> // 使用组件
    
    <input type="text" v-focus> // 使用指令
    
    $log('111'); // 使用属性
    
    同上还能使用混入的方法
    

    若这么写

    Vue.use(my_plugin,{ debug: true})
    

    那么上面的插件代码options就能取到值debug: true

    相关文章

      网友评论

          本文标题:Vue mixin 混入及自定义Vue插件

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