Reactive에서 설정
<template>
<div class="app">
{{ state.msg }}
</div>
</template>
<script lang="ts">
import { defineComponent, reactive } from 'vue';
export default defineComponent({
name: 'App',
components: {},
setup() {
const state = reactive({
msg: 'Hello TypeScript',
});
return {
state,
};
},
});
</script>
const state = reactive({
msg: 'Hello TypeScript' as string,
});
<template>
<div class="app">
{{ msg }}
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from 'vue';
export default defineComponent({
name: 'App',
components: {},
setup() {
const state = reactive({
msg: 'Hello TypeScript' as string,
});
return {
...toRefs(state),
};
},
});
</script>
setup() {
const state = reactive({
msg: 'Hello TypeScript' as string,
});
state.msg = 25;```

const state = reactive<{ msg: string }>({
msg: 'Hello TypeScript',
});
interface State {
msg: string;
}
const state = reactive<State>({
msg: 'Hello TypeScript',
});
ref에서 설정
<template>
<div class="app">
{{ msg }}
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
export default defineComponent({
name: 'App',
components: {},
setup() {
const msg = ref('Hello TypeScript');
return {
msg,
};
},
});
</script>

const msg = ref<string>('Hello TypeScript');
ref 의 경우에 형태를 설정하는 경우, 제네릭으로 형태를 설정
msg.value="Hello Vue 3";
ref로 정의한 데이터에 액세스하려면 .value
ref로 객체 설정
interface Book {
title: string;
author: string;
year: number;
}
const book = ref<Book>({
title: 'Vue 3 Guide',
author: 'Vue Team',
year: 2020,
});

const books = ref<Book[]>([
{
title: 'Vue 3 Guide',
author: 'Vue Team',
year: 2020,
},
{
title: 'Vite Guide',
author: 'Vue Team',
year: 2021,
},
]);
props의 경우
<template>
<h1>{{ msg }}</h1>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue';
export default defineComponent({
name: 'HelloWorld',
props: {
msg: {
type: String as PropType<string>, //이부분이 타입 설정
},
},
});
</script>
<template>
<div class="app">
<hello-world :msg="msg" />
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue';
import HelloWorld from './components/HelloWorld.vue';
export default defineComponent({
name: 'App',
components: {
HelloWorld,
},
setup() {
const msg = ref('Hello TypeScript');
return {
msg,
};
},
});
</script>
ref에서 정의한 msg 속성을 props로 HelloWorld 구성 요소에 전달
메소드(함수)의 경우