vue3基础:单文件组件介绍

介绍

Vue 的单文件组件 (即 *.vue 文件,简称 SFC,全称是single file component) 是一种特殊的文件格式,使我们能够将一个 Vue 组件的模板、逻辑与样式封装在单个文件中。下面是一个单文件组件的示例:

<script>
export default {
  data() {
    return {
      greeting: 'Hello World!'
    }
  }
}
</script>

<template>
  <p class="greeting">{
  { greeting }}</p>
</template>

<style>
.greeting {
  color: red;
  font-weight: bold;
}
</style>

Vue 的单文件组件是 HTML、CSS 和 JavaScript 三种元素的自然延伸。<template><script> <style> 三个块在同一个文件中封装、组合了组件的视图、逻辑和样式。

为什么要使用 SFC

尽管 SFC 需要一套构建步骤,但也相应地有非常多优势:

  • 使用熟悉的 HTML、CSS 和 JavaScript 语法编写模块化的组件
  • 罗列本身就强耦合的逻辑关注点
  • 预编译模板
  • 组件级隔离的 CSS
  • 在使用组合式 API 时语法更简单
  • 通过交叉分析模板和逻辑代码能进行更多编译时优化
  • 更好的 IDE 支持,提供自动补全和对模板中表达式的类型检查
  • 开箱即用的模块热更新 (HMR) 支持

SFC 是 Vue 框架提供的一个功能,并且在下列场景中都是官方推荐的项目组织方式:

  • 单页面应用 (SPA)
  • 静态站点生成 (SSG)
  • 大型的前端项目,若使用构建步骤可以获得更好的开发体验 (DX)

当然,我们也意识到有些场景下使用 SFC 有些过犹不及。因此 Vue 同样也可以在无构建步骤的情况下以纯 JavaScript 方式使用。如果你正希望通过简单的交互来增强静态 HTML,你可以看看 petite-vue,它是一个 6kb 左右、预优化过的 Vue 子集,更适合渐进式集成的需求。

SFC 是如何工作的

Vue SFC 是一个框架指定的文件格式,因此必须交由 @vue/compiler-sfc 编译为标准的 JavaScript 和 CSS,一个编译后的 SFC 是一个标准的 JavaScript(ES) 模块,这也意味着通过适当的构建配置,你可以像导入其他 ES 模块一样导入 SFC:

import MyComponent from './MyComponent.vue'
export default {
  components: {
    MyComponent
  }
}

SFC 中的 <style> 标签一般会在开发时注入成原生的 <style> 标签以支持热更新,而生产环境下它们会被抽取、合并成单独的 CSS 文件。
在实际项目中,我们一般会使用集成了 SFC 编译器的构建工具,比如 Vite 或者 Vue CLI (基于 webpack),Vue 官方也提供了脚手架工具来帮助你尽可能快速地上手开发 SFC。

说明:所有内容皆来自vue3官方文档

相关推荐

  1. vue3基础文件组件介绍

    2024-01-13 22:52:03       64 阅读
  2. vue3-应用规模化-文件组件

    2024-01-13 22:52:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 22:52:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 22:52:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 22:52:03       82 阅读
  4. Python语言-面向对象

    2024-01-13 22:52:03       91 阅读

热门阅读

  1. pi i2c 读取24c256

    2024-01-13 22:52:03       61 阅读
  2. C++(20):list通过erase, erase_if删除元素

    2024-01-13 22:52:03       53 阅读
  3. 【Linux】网络版计算器代码

    2024-01-13 22:52:03       61 阅读
  4. Python 面向对象之多态

    2024-01-13 22:52:03       63 阅读
  5. 编程探秘:Python深渊之旅-----调试的艺术(四)

    2024-01-13 22:52:03       70 阅读
  6. C++入门【25-C++ 从函数返回指针】

    2024-01-13 22:52:03       66 阅读
  7. Pandas实战100例 | 案例 25: 计算相关系数

    2024-01-13 22:52:03       61 阅读