vue单文件组件实现
Vue 单文件组件实现
Vue 单文件组件(Single File Components,SFC)是 Vue.js 的核心特性之一,允许将模板、逻辑和样式封装在一个文件中,扩展名为 .vue。以下是实现单文件组件的关键要点:
基本结构
一个典型的 .vue 文件包含三个部分:
<template>
<!-- HTML 模板 -->
<div>{{ message }}</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello Vue!'
}
}
}
</script>
<style scoped>
/* 组件作用域 CSS */
div {
color: red;
}
</style>
模板部分
<template>标签内编写组件的 HTML 结构。- 支持 Vue 的模板语法,如插值
{{ }}、指令(v-if、v-for等)。 - 必须有一个根元素(Vue 3 支持多根节点)。
脚本部分
<script>中定义组件的逻辑,通过export default导出选项对象。- 可以包含
data、methods、props、computed等 Vue 选项。 - 若使用 Composition API,需通过
setup()函数组织逻辑:<script> import { ref } from 'vue' export default { setup() { const message = ref('Hello Vue 3!') return { message } } } </script>
样式部分
<style>标签内编写 CSS,支持预处理器(如scss、less)。- 添加
scoped属性可使样式仅作用于当前组件:<style scoped> .example { color: blue; } </style>
模块化与复用
- 通过
import引入其他组件或工具:<script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent } } </script>
构建工具集成
- 需配合构建工具(如 Vite 或 Webpack)处理
.vue文件。 - Vue CLI 或 Vite 默认支持 SFC,无需额外配置。
注意事项
- 组件命名建议使用 PascalCase(如
MyComponent.vue)。 - 样式隔离可通过
scoped或 CSS Modules 实现。 - 复杂逻辑可拆分为单独的文件(如
composables)。







