コンテンツにスキップ

1. はじめに

Vue(ビュー)は Web ブラウザなどで複雑なユーザインタフェース(UI)を構築する際に使用されるフレームワークで、コンポーネントと呼ばれる部品を用いて UI を実装することが特徴です。

そしてなぜこの資料に Vue 編があるかというと、Twin:te のフロントエンドが Vue 3 + TypeScript + Vite で開発されているからです。この Vue 編を終えると、Twin:te のフロントエンドのコードが「読める」状態に近づきます。Twin:te の開発に興味がある人はぜひこちらを選んでください。

百聞は一見に如かず、まずは Vue のコードを眺めてみましょう。次のコードは SFC(Single File Component) と呼ばれる Vue 独自のファイル形式(後述)で記述された UI コンポーネントです。

Thumbnail.vue

<script setup lang="ts">
type Props = {
srcUrl: string;
title: string;
description: string;
};
defineProps<Props>();
</script>
<template>
<div class="thumbnail">
<img :src="srcUrl" />
<div class="inner">
<h2>{{ title }}</h2>
<p>{{ description }}</p>
</div>
</div>
</template>
<style scoped>
.thumbnail {
width: 500px;
display: flex;
justify-content: center;
align-items: center;
padding: 16px 32px;
border-radius: 12px;
gap: 32px;
box-shadow: 0 0 16px rgba(0, 0, 0, 0.1);
}
.thumbnail > img {
width: 130px;
}
</style>

このコンポーネントは、別のコンポーネントの template の中から次のように呼び出して使います(詳しい書き方は 4 章で扱います)。

<Thumbnail
src-url="https://user0514.cdnw.net/shared/img/thumb/elly20160701425018_TP_V.jpg"
title="のどかな風景"
description="あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。"
/>

Vue のサンプル

このように、「ロジック(TypeScript)」「見た目(HTML)」「スタイル(CSS)」が 1 つのファイルにまとまった形式によってコンポーネントを定義することができます。HTML の部分はほとんど普通の HTML に見えるはずです。Day 1 で学んだ知識がそのまま活きるので、身構えずに進んでいきましょう。