2022年10月11日火曜日

VueのSFCを使ってコンポーネントを分割する方法

VueのSFCを使ってコンポーネントを分割する方法

概要

SFC (Single File Components) を使ってコンポーネントを分割する方法を紹介します
また分割したコンポーネントに値を渡す方法も紹介します

環境

  • macOS 11.7
  • node 18.9.0
  • quasar 2.8.2

サンプルコード

  • vim src/pages/IndexPage.vue
<template>
  <FormTest
    :foo="name"
    >
  </FormTest>
</template>

<script setup lang="ts">
import { ref } from 'vue';

const name = ref('default_value_from_IndexPage.vue');

import FormTest from './FormTest.vue';
</script>
  • vim src/pages/FormTest.vue
<template>
  <div>
    <input type="text" v-model="value" />
    <p>Value: {{ value }}</p>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'

const props = defineProps({
  foo: String
})

const value = ref(props.foo)
</script>

ちょっと解説

FormTest.vue を IndexPage.vue で使うことを想定しています

FormTest では setup を使っておりその場合に値を受け取るには defineProps を使います
IndexPage から name というオブジェクトを使って値を渡しており値を渡す場合は :foo="name" という感じでコロンを使ってプロパティを参照し渡したい変数名を指定します

参考サイト

0 件のコメント:

コメントを投稿