美文网首页
102.vue3中全局mixins的使用

102.vue3中全局mixins的使用

作者: 半生_温暖纯良_Junzer | 来源:发表于2021-07-02 10:56 被阅读0次

1.mixin.js文件定义

mixin.js文件定义

// mixin.js

export default {
    data () {
      return {
        from: 'from mixin data'
      }
    },
    mounted () {
      console.log('from mixin mounted')
    },
    methods: {
      handleInit () {
        console.log('from mixin methods')
      }
    }
  }

2.全局文件main.js引入mixin

全局文件main.js引入mixin

// main.js

import { createApp } from 'vue'
import App from './App.vue'
import mixin from './mixin/index.js'

const app = createApp(App)

app.mixin(mixin)

app.mount('#app');

3.组件内使用mixin

1.模板内直接使用mixin

// 1.模板内直接使用mixin

<template>
  <div>
    <h3>mixin</h3>
    <el-button @click="handleInit">mixin使用</el-button>
  </div>
</template>
运行结果

2.组件方法调用mixin

// 组件方法调用mixin

<template>
  <div>
    <h3>mixin</h3>
    <el-button @click="onClick">组件内方法调用mixin使用</el-button>
  </div>
</template>

<script>
// getCurrentInstance获取当前组件实例
import { getCurrentInstance, onMounted } from "vue";

export default {
  setup () {
    const { proxy, ctx } = getCurrentInstance()
   
    onMounted(() => {
      console.log("组件内mounted");
    })

    const onClick = () => {
      console.log('组件内方法调用mixin使用')
      proxy.handleInit()
    }

    return {
      onClick
    }
  }
}
</script>

运行结果

相关文章

网友评论

      本文标题:102.vue3中全局mixins的使用

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