🔧

[Nuxt2(bridge)]Composableな関数でPropsをreactiveに

2023/04/07に公開

コンポーネントに与えられたPropsの値が変更したときに、Composableな関数内で、変更値を取得する方法(reactive)

動作環境

  • nuxt: ^2.15.8
  • @nuxtjs/composition-api: ^0.32.0

Composable関数

useCustomComposable.js
import { reactive, toRefs } from 'vue';

export function useCustomComposable(props) {
  const state = reactive({
    ...toRefs(props) // ここでpropsに含まれる変数をreactiveにする
  });

  // 他のロジックや関数をここに追加

  return {
    ...state
  };
}

コンポーネント

ParentComponent.vue
<script>
import { defineComponent } from 'vue';
import { useCustomComposable } from './useCustomComposable';

export default defineComponent({
  props: {
    message: {
      type: String,
      default: ''
    },
    
    ...
    
  },
  setup(props) {
    //ここでComposableな関数にpropsを与える
    const { message } = useCustomComposable(props);

    return {
      message
    };
  }
});
</script>

Discussion