Vue 的开发模式

1,488 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前面的学习中我们使用 Vue 的过程都是在 html 文件中,通过 template 编写自己的模板、脚本逻辑、样式等,这是为了方便讲解那些知识点;

但是随着项目越来越复杂,我们会采用组件化的方式进行开发:

  • 这就意味着每个组件都会有自己的模板、脚本逻辑、样式等,这时如果我们还是把代码放在一个 HTML 文件中,就显得有点复杂了;
  • 所以真实开发中,我们必然是会对代码进行抽离的;
  • 当然,我们依然可以把它们抽离到单独的 JavaScriptCSS 文件中,但这样做意味着一个组件的内容可能要抽离成多个文件,这就显得不太优雅了;
  • 此外,前面我们代码中的 script 是在一个全局的作用域下,很容易出现命名冲突的问题
  • 而且,前面我们写的都是些 ES6 的代码,但为了适配一些浏览器,我们又必须使用 ES5 的语法去编写代码;
  • 最后,在我们编写完代码之后,还需要通过工具对代码进行构建、压缩、打包; 所以在真实开发中,我们可以通过一个后缀名为 .vueSingle File Components(单文件组件)文件把属于一个组件的内容抽离出去,之后可以使用 Webpack 或者 Vite 或者 rollup 等构建工具来对其进行处理,这样一来,上述问题就能得到解决了。

🙌🌰(举个栗子):

如果要对前面代码中的 ComponentA 组件的有关内容进行抽离,使用 SFC 的方式来做时,我们可能就会抽出来一个 component-a.vue 文件(关于如何命名的问题我们后面讲项目时再说),在这个文件中,我们会编写属于这个组件自己的 templatescript 以及 style

image-20211017182427667

1. 单文件组件的特点

在这个单文件组件中,我们可以获得非常多的特性:

  • 代码的高亮;
  • ES6CommonJS 的模块化能力;
  • 组件作用域的 CSS
  • 可以使用预处理器来构建更加丰富的组件,比如 TypeScriptBabelLessSass 等;

2. 如何支持 SFC

通过这个 .vue 文件(SFC),我们把一个组件的有关内容编写在了一起,但又有了一个新的问题:怎么把这个 .vue 文件中的内容转变成我们最终的代码,或者说怎么转成浏览器认识的代码呢(浏览器不认识后缀名为 .vue 的文件,也不认识 .vue 文件中的代码编写格式)?要想以 .vue 文件的模式去编写代码同时让浏览器最终能认识这些代码,我们就需要借助一些工具来实现。

我们可以使用 Webpack/Vite/rollup 等工具对 .vue 文件中的代码进行构建,最终打包成浏览器能直接识别的 JavaScript 代码文件,然后可以把打包后的代码文件部署到服务器中,之后用户在进行浏览时,就应该是从服务器中请求下来代码,而这时请求下来的代码就已经是浏览器能够识别的代码了。最后在用户的浏览器中就能看到我们真正想要的效果了。

所以,下面我们就需要学习如何使用这些构建工具了。这里我们主要学习 WebpackVite 这两个构建工具的有关知识。

如果我们想要使用这一 SFC.vue 文件),比较常见的是两种方式

  • 方式一:使用 Vue CLI (本质上还是依赖 Webpack 的)来创建项目,项目会默认帮助我们配置好所有的配置选项,可以在其中直接使用 .vue 文件;
  • 方式二:自己使用 WebpackViterollup 这类打包工具,对代码文件进行打包处理;

在学习阶段,为了更好地理解 Vue CLI 的原理及其打包项目的过程,接下来会先讲解如何使用 Webpack 搭建一个简单的 Vue 的开发环境(之后我们再去使用脚手架(Vue CLI)时,里面的很多东西就能理解了,包括掌握一些脚手架的配置)。

但最终,无论是后期我们做项目,还是在公司进行开发,通常都会采用 Vue CLI 的方式来完成。