6.1 组件
6.1.1 什么是组件
Vue的组件是可复用的Vue实例,它可以封装HTML元素和 CSS样式以及与之相关的JavaScript行为。每个组件都有自己的作用域,因此它可以避免全局作用域中的命名冲突,并且可以方便地在不同的Vue实例中重复使用。组件的结构包含模板、脚本和样式,这些可以分别定义在单独的文件中或在同一个文件中。
通过使用组件,可以将页面分解成多个独立的部分,每个部分都有自己的功能和状态,这样可以方便地组合和重用这些部分,从而提高开发效率和代码可维护性。在Vue.js中,组件是构建大型应用程序的重要组成部分,它使开发人员可以将复杂的应用程序分解成更小的、可重用的组件。
Vue的组件分为单文件组件和非单文件组件两种。
6.1.2 单文件组件
在Vue中,单文件组件是一种将组件的 HTML 模板、JavaScript代码和CSS样式写在同一个文件中的方式。这种方式将组件的不同部分分离到不同的文件中,使得组件更易于管理、维护和阅读。
单文件组件通常以 .vue 扩展名的文件存在,包含三个部分:<template>、<script>和<style>。<template> 部分定义组件的HTML模板,<script>部分定义组件的 JavaScript代码,<style>部分定义组件的CSS样式。
单文件组件可以通过模块化的方式进行引用和导出,使得组件更容易组合和重用。此外,单文件组件还支持使用构建工具进行编译和打包,从而可以使用现代的开发工具和技术来提高开发效率和代码质量。
单文件组件是Vue开发中的推荐方式,它可以使组件的开发和维护更加高效和可靠。当应用程序规模变大时,单文件组件也能更好地扩展和组织代码。
6.1.3 非单文件组件
在Vue中,非单文件组件是一种将组件的HTML模板、JavaScript代码和CSS样式写在同一个文件中的方式。这种方式不像单文件组件那样,将组件的不同部分分离到不同的文件中。
非单文件组件通常以.vue扩展名的文件存在,并使用一个包含组件选项的JavaScript对象来描述组件的行为和状态。这个对象可以包括一个 template 属性,用于定义组件的HTML模板,一个script属性,用于定义组件的JavaScript代码,以及一个style属性,用于定义组件的CSS样式。
与单文件组件相比,非单文件组件的缺点是难以管理和维护,因为所有组件的不同部分都写在同一个文件中,这会导致代码变得更加复杂,不易于阅读和理解。此外,非单文件组件也不支持像单文件组件那样的构建工具的优化和开发体验。
虽然非单文件组件不是推荐的开发方式,但它仍然是一种有效的组件开发方式,尤其是在小型项目中。当应用程序规模变大时,应该考虑使用单文件组件来更好地管理和组织代码。
6.2 脚手架
6.2.1 什么是脚手架
Vue CLI(Vue Command Line Interface)是一个官方提供的Vue脚手架工具,可以快速搭建Vue项目的基础结构,并提供丰富的插件和功能来增强开发效率。
Vue CLI基于Node.js和Webpack构建,支持生成包括单文件组件、路由、状态管理等在内的完整的Vue项目骨架,同时还提供了开箱即用的开发服务器、热重载、代码分割、压缩、测试和构建等功能。此外,Vue CLI还支持自定义配置和插件,可以根据不同项目的需求进行扩展和定制。
使用Vue CLI可以大大加快Vue项目的开发速度和提高代码质量,同时还可以提供一致性和标准化的项目结构和开发流程,方便多人协作和维护。总之,Vue CLI是Vue生态中非常重要的一个工具,也是学习和使用Vue的必备工具之一。
6.2.2 安装步骤
方法一:
安装Vue CLI需要先安装Node.js,因为Vue CLI是基于Node.js构建的。
以下是安装Vue CLI的步骤:
- 下载和安装
Node.js(如果没有安装过):访问Node.js官网 https://nodejs.org/en/download/,选择适合自己系统的版本下载并安装。- 打开终端或命令行界面:在
Windows上,可以使用PowerShell或命令提示符;在macOS和Linux上,可以使用终端或控制台。- 使用
npm安装Vue CLI:在终端或命令行界面中输入以下命令:npm install -g @vue/cli这会安装
Vue CLI最新的稳定版本。如果要安装特定的版本,可以使用以下命令:npm install -g @vue/cli@<version>
- 等待安装完成:这可能需要一些时间,具体取决于你的网络速度和电脑性能。
- 验证安装结果:在终端或命令行界面中输入以下命令:
vue --version如果看到类似
@vue/cli x.y.z的版本号,说明安装成功。
方法二:
命令行界面中输入以下命令:
vue ui
进入图形化界面进行构建脚手架工具:




















