vue3 mixins

简介: vue3 mixins

Vue3 中的 mixins 是一种复用组件逻辑的方式。在 Vue2 中,我们通常使用 mixins 来将一些全局的方法或者数据混入到多个组件中。但是在 Vue3 中,由于组合式 API 的引入,我们可以使用更灵活的方式来复用逻辑。

在 Vue3 中,我们可以使用 app.mixin() 方法来全局注册一个 mixin。这个 mixin 中的所有属性和方法都会被混入到所有的组件中。例如:

import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mixin({
  data() {
    return {
      message: 'Hello Vue3!'
    }
  },
  methods: {
    showMessage() {
      console.log(this.message)
    }
  }
})
app.mount('#app')

在这个例子中,我们创建了一个全局的 mixin,它有一个 data 属性和一个方法。这个 mixin 会被混入到所有的组件中,所以所有的组件都可以访问到这个 data 属性和这个方法。

然而,这种方式的缺点是所有的组件都会共享同一份 data 和同一个方法,这可能会导致数据的冲突和行为的不一致。因此,在 Vue3 中,我们更倾向于使用组合式 API 来复用逻辑。例如:

import { ref, computed } from 'vue'
export default function useMessage() {
  const message = ref('Hello Vue3!')
  const showMessage = () => {
    console.log(message.value)
  }
  return {
    message,
    showMessage
  }
}

在这个例子中,我们创建了一个函数,这个函数返回一个对象,这个对象包含了我们需要的数据和方法。然后,我们可以在任何需要的地方导入和使用这个函数。这样,我们就可以避免数据的冲突和行为的不一致。

相关文章
|
9天前
vue3【实战】语义化首页布局
vue3【实战】语义化首页布局
28 2
|
9天前
|
存储 容器
vue3【实战】来回拖拽放置图片
vue3【实战】来回拖拽放置图片
19 2
|
9天前
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
32 1
|
9天前
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
19 1
|
9天前
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
17 1
|
4天前
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
6 0
|
4天前
|
JavaScript
【vue3】vue3中路由hash与History的设置
【vue3】vue3中路由hash与History的设置
9 0
|
4天前
|
编解码 前端开发
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
11 0
|
4天前
|
JavaScript
【vue】 vue 翻页时钟制作,vue2、vue3
【vue】 vue 翻页时钟制作,vue2、vue3
11 0
|
9天前
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程
20 0