小编ayb*_*jax的帖子

Vue3:如何混合组合 api 和选项 api 以实现可组合/混合命名空间

再会!

假设我想将 Vue 与 options api 一起使用,但又不想使用 mixin,因为它们会导致很多问题。我想使用可组合项作为混合项来为混合项/可组合项提供命名空间。

所以,我的“解决方案”是结合选项 api 和组合 api。

假设我有一个这样的 mixin:

export default {
  data() {
    return {
      person: {
        first_name: 'first name',
        last_name: 'last name',
      },
      gender: 'gender'
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我决定将其转换为可组合项,如下所示:

export default () => {
  const person = reactive({first_name: 'fn', last_name: 'ln'});
  const gender = ref('gender');
  
  return {
    person,
    gender,
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,在我的 .vue 文件中,我可以导入可组合项:

<script lang="ts">
import useDataComposable from './dataMixin';
...

export default defineComponent({
  ...
  setup() {
    const dataComposable = useDataComposable();
    dataComposable.gender.value = 'gender2'; …
Run Code Online (Sandbox Code Playgroud)

vuejs3 composable

5
推荐指数
1
解决办法
4226
查看次数

标签 统计

composable ×1

vuejs3 ×1