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

什么是单文件组件?

单文件组件形式

非单文件组件

可以理解为是通过 html 文件来使用 Vue。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><div id="app"></div><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script><script>var app = new Vue({el: '#app',data: {message: 'Hello Vue!'},template: '<div id="app">{{ message }}</div>'})</script></body>
</html>

这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中,或者你的前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显。

非单文件组件缺点

  • 全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复
  • 字符串模板 (String templates) 缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \
  • 不支持 CSS (No CSS support) 意味着当 HTML 和 JavaScript 组件化时,CSS 明显被遗漏
  • 没有构建步骤 (No build step) 限制只能使用 HTML 和 ES5 JavaScript,而不能使用预处理器,如 Sass 和 Babel

单文件组件

文件扩展名为 .vue 的 single-file components (单文件组件) 为以上所有问题提供了解决方法,并且还可以使用 webpack 或 Browserify 等构建工具。

<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message: 'hello world'}}
}
</script>

这些特定的语言只是例子,你可以只是简单地使用 Babel、TypeScript、SCSS、PostCSS 或者其他任何能够帮助你提高生产力的预处理器。

单文件组件一般可以通过 Vue CLI 脚手架快速搭建一个项目,并且已经帮你配置好了 Babel、Webpack 热更新等功能。

后续所有和 Vue 相关的文章都会以单文件组件的形式来举例。

原文链接:菜园前端

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

相关文章:

  • 国际站阿里云服务器多久会重启一次系统??
  • 低成本32位单片机电动工具无感方波控制方案
  • 安防视频监控/视频集中存储/云存储平台EasyCVR平台无法播放HLS协议该如何解决?
  • MySQL如何查找某个字段值相同的数据
  • 8.react18并发模式与startTransition(搜索高亮思路)
  • 前端Vue自定义得分构成水平柱形图组件 可用于系统专业门类得分评估分析
  • Linux获取纳秒级别时间
  • CSS中你不得不知道的盒子模型
  • 知识储备--基础算法篇-数组
  • zookeeper 理论合集
  • 【pyinstaller 怎么打包python,打包后程序闪退 不打日志 找不到自建模块等问题的踩坑解决】
  • 【Docker】网络
  • Linux :realpath 命令
  • react17:生命周期函数
  • 腾讯内部单边拥塞算法BBR-TCPA一键脚本安装
  • 【LLM】chatglm-6B模型训练和推理
  • 性能可靠it监控系统,性能监控软件的获得来源有哪些
  • TCP/IP网络编程(一) 理解网络编程和套接字
  • Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
  • 装备一台ubuntu
  • 为了更好和大家交流,欢迎大家加我的微信账户
  • MS1826A HDMI 多功能视频处理器 HDMI4进1出画面分割芯片
  • 最新文献怎么找|学术最新前沿文献哪里找
  • ctfshow 红包题
  • SpringBoot项目(jar)部署,启动脚本
  • 大数据(四)主流大数据技术
  • 【已解决】激活虚拟环境报错:此时不应有Anaconda3\envs\[envs]\Library\ssl\cacert.pem。
  • Vue安装过程的困惑解答——nodejs和vue关系、webpack、vue-cli、vue的项目结构
  • PWA ~
  • YII项目在Docker中运行缓慢