JS 框架 词条目录
前端Wiki/JS 框架/进阶/Vue 3 入门

组件基础

组件是 Vue 的基本积木:一个 .vue 文件就是一个组件,包含三段——<template> 结构、<script setup> 逻辑、<style> 样式,结构、行为、样式封装在一起。页面由组件拼装而成,组件还能嵌套复用,这是前端工程「可维护」的基石。

使用组件像用 HTML 标签:在父组件里 import StudentCard from './StudentCard.vue',模板里直接写 <StudentCard />。官方建议组件名用大驼峰(PascalCase),文件名与组件名一致。

scoped 属性值得专门记住:它让样式只作用于当前组件,编译时会给元素加上唯一属性选择器,避免多个组件的 .card 类互相污染。不加 scoped 的样式才是全局样式。

本节要点.vue 文件 = template + script setup + style 三段式;组件当标签用;scoped 让样式局部化,防止类名互相污染。
代码
<!-- StudentCard.vue:一个 .vue 文件就是一个组件 -->
<template>
  <div class="card">
    <h3>{{ student.name }}</h3>
    <p>年龄:{{ student.age }},城市:{{ student.city }}</p>
  </div>
</template>

<script setup>
import { ref } from 'vue';
// 组件的数据与逻辑写在这里
const student = ref({ name: '小明', age: 18, city: '北京' });
</script>

<style scoped>
/* scoped:样式只作用于当前组件,不污染全局 */
.card {
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 12px;
}
</style>

<!-- 父组件 App.vue 中使用 -->
<!-- <script setup>
import StudentCard from './StudentCard.vue';
</script>
<template>
  <StudentCard />          就像用普通 HTML 标签
  <StudentCard />          可复用任意次
</template> -->