当前位置: 首页 > news >正文

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官方文档

http://www.lryc.cn/news/279266.html

相关文章:

  • OCR字符识别:开始批量识别身份证信息
  • php多小区智慧物业管理系统源码带文字安装教程
  • 解决虚拟机的网络图标不见之问题
  • 【Spring类路径Bean定义信息扫描】
  • Ubuntu上安装VMware+win11系统手册
  • 2024年1月12日:清爽无糖rio留下唇齿之间的香甜
  • 群晖Synology Drive同步文件时过滤指定文件夹“dist“, “node_modules“
  • 小程序中滚动字幕
  • MySQL中约束是什么?
  • 若依在表格中如何将字典的键值转为中文
  • 用笨办法-刻意练习来提高自己的编程能力
  • FineBI报表页面大屏小屏自适应显示问题
  • NAND Separate Command Address (SCA) 接口命令解读
  • Git的简单使用说明
  • 少儿编程 2023年12月电子学会图形化编程等级考试Scratch二级真题解析(判断题)
  • 前端面试 -- vue系列
  • open3d相关操作总结
  • HTTP数据请求
  • 孩子兄弟结构体【】
  • SSM-SpringMVC+Spring+Mybatis
  • 系统存储架构升级分享 | 京东云技术团队
  • OpenCV-22高斯滤波
  • 实现LCM在docker之间的通信
  • GitLab任意用户密码重置漏洞(CVE-2023-7028)
  • 在机械行业中,直线导轨和弧形导轨哪个应用范围更广泛?
  • 关于ue4 射击游戏架构设计
  • vc++开发地图
  • 轻量化的yolov8部署到安卓Android手机端
  • 分块矩阵的定义、计算
  • NAND系统性能提升常见方案