初始Vue
1.什么是Vue
Vue.js是一种流行的JavaScript前端框架,用于构建用户界面。它是一种开源的框架,由Evan You于2014年创建。Vue.js专注于视图层,并且易于集成到现有项目中。
Vue.js的核心思想是通过使用组件化的方式构建应用程序。它允许开发者将应用程序拆分为多个可重用的组件,每个组件都有自己的逻辑和视图。这种组件化的开发方式使得代码更易于维护和管理,并且可以提供更好的可复用性。
Vue.js采用了响应式的数据绑定机制,当数据发生变化时,相关的视图会自动更新。这种响应式的机制使得开发者能够更容易地管理和更新应用程序的状态。
除了组件化和响应式数据绑定,Vue.js还提供了一些其他的功能,如路由管理、状态管理、动画效果等,使得开发者能够更好地构建复杂的单页应用程序。
总而言之,Vue.js是一种灵活、高效且易于学习的前端框架,它可以帮助开发者构建交互性强、可维护和可扩展的用户界面。
Vue.js的基本工作原理
1.1从MVC模式到MVVM模式
1.1.1MVC模式
作为架构模式中最出名并且应用最广泛的架构模式,MVC(Model View Controller)并没有一个明确的定义,网上流传的 MVC 架构图也是形态各异。不过多个框架以及书籍对 MVC 的理解有一点是完全相同的,也就是它们都将整个应用分成 Model(模型)、View(视图)和 Controller(控制器)三个部分。
MVC 允许在不改变视图的情况下改变视图对用户输人的响应方式,用户对 View 的操作交给了 Controller 处理,在 Controller 中响应 View 的事件调用 Model 的接口对数据进行操作一旦 Model 发生变化便通知相关视图进行更新。所有通信都是单向的。
MVC 使用非常广泛,例如JavaEE 中的SSH 框架(Struts+Spring+Hibermate)、ASP.NET 中的ASP.NET MVC 框架。下图所示为经典的 MVC 模式。
1.1.2MVP模式
MVP(Medel View Presenter)模式将 MVC 中的 Controller 改名为 Presenter(呈现),同时改变了通信方向,完全切断了 View 与 Model 之间的联系。View 与 Model 不发生联系,都通过Presenter传递。View 非常薄,不部署任何业务逻辑,称为“被动视图”(Passive View),即没有任何主动性,而 Presenter 非常厚,所有逻辑都部署在那里。各部分之间的通信都是双向的。例如,NET程序员熟悉的ASP.NET 中的 Web Forms 技术即支持MVP 模式,因为事件驱动的开发技术使用的就是 MVP 模式。下图所示为经典的 MVP 模式。
1.1.3MVVM模式
MVVM(Model View ViewModel)是一个 MVC 的增强版,正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里,即ViewModel。MVVM 模式采用双向绑定(data-binding): View 的变动,自动反映在 ViewModel,反之亦然。它实现了 View和Model的自动同步,即当 Model的属性改变时,我们不用再自己手动操作 Dom 元素来改变 View 的显示,而是改变属性后该属性对应的 View 层显示会自动改变。下图所示为经典的 MVVM 模式。
1.2搭建Vue.js开发环境
1.2.1Vue.js常用开发工具
1.2.2Vue的下载和引入
由于 Vue.jis 是一个轻量级、渐进式的 JavaScript 框架,开发者可以在原有项目中“直接人”Vue.js。但是若要开发全新的 Vue.is 项目,建议使用项目构建工具 Vue CLI,它可以帮开发者快速构建一个“开箱即用”的大型单页应用,并提供优秀的构建配置,这种方式下,开发者只需要关注业务本身和核心代码的编写就可以了,后面的章节中将详细介绍如何通过VueCLI构建项目
下面介绍如何下载独立版本“直接引入”Vue.js:
(1)打开官网(https: /cn.vuejs.org/)首页,选择【学习】菜单下的【教程】。
(2)单击教程左边导航栏中的【安装】。
(3)在教程右边窗格中单击[开发版本]或[生产版本]即可下载对应文件。Vue.is 目前有 1.x、2.x 和 3.x 版本,本书使用 2. 版本。项目开发过程中使用开发版本vue.js,产品上线使用生产版本 vue.min.js。打开下载后的 Vue.is 文件,在代码开头的注释中可以查看版本号。
(4)在HTML 页面中使用 Vue.js 时,通过
<script src="vue.js"></script>
(5)还可以用其他的方法,如下图:
对于制作原型或学习,你可以这样使用最新版本:
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏:
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14"></script>
如果你使用原生 ES Modules,这里也有一个兼容 ES Module 的构建文件:
<script type="module">
import Vue from 'https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.esm.browser.js'
</script>
1.2.3Node.js环境
除了使用1.2.2 节中的两种方式引人 Vue.js外,还可以使用npm 安装 Vue.js框架。若使用npm。则需要先安装 Node.js。
Nade.js是一个JavaScript 运行环境,它由Ryan Dal 下2009 年5月发布,实质上是对Chrom V8引擎进行了封装,可以让 JavaScript 运行在服务器端。Node,.js的官方网(https://nodejs.org/en/)提供了最新版本的下载,也提供了大量的文档和示例程序。截至2023年12月,Node.js的最新版本为 V20,10.0,如图所示:
各位可以自己下载安装,在此就不介绍Node.js的安装过程。安装完成后,打开 Windows的cmd 窗口,输入 node -v 命令,查看 node 的版本,若出现相应的版本号,则说明安装成功了。
1.2.4npm包管理器
npm(node puckuge manager)是 Node.js默认的包管理下具、用来解决 Node.js 代码部署问题,安装 Node. js时会自动安装相应的 npm 版本,无须单独安装
npm 完全用JavaScript 编写,它可以管理本地项目所需要的模块并自动维护依赖情况,也可以管理全局安装的 JavaScript工具。使用 npm 包管理工具可以解决如下场景的需求:
(I)从 npm 服务器下我第三方包或命令程序
(2)将自己编写的包或命令程序上传到 npm 服务器。
下面列举了 npm 中常用的命令:
(1)npm install;安装项目需要的全部包,需要配置 package.json 文件
(2)npm uninstall 包名:指定名称的包
(3)npm install 包名:安装指定名称的包,后面可以跟参数“- - save”表示本地安装,“- g”表示全局安装。
(4)npm update 包名:更新指定名称的包
(S)npm start;项目启动。
打开 Windows的 cmd 命令窗口,执行命令: npm install vue 即可安装 Vue.js,如下图:
继续输入命令:npm info vue,可以查看 vue 模块的信息。
由于 npm 的仓库源布置在国外,资源传输速度较慢,读者也可以使用淘宝镜像源的 cnpm。
(1)安装 cnpm。
npm install -g cnpm --registry=https://registry.npm.taobao.org
(2)使用 cnpm 安装 Vue.js。
cnpm install vue
在用 Vue.js 构建大型应用时推荐使用 npm 安装,npm 可以迅速进行 Vue.js 的使用和升不用担心由此造成的版本混乱,还可以很好地和 Webpack 等模块打包器配合使用。
2.总结
1.学习基本概念:了解Vue.js的基本概念,如组件、指令、数据绑定等。可以通过官方文档、教程或在线资源进行学习。
2.安装和使用:通过npm、CDN或直接下载的方式安装Vue.js。可以通过script标签引入Vue.js,也可以通过Vue CLI工具创建和管理项目。
3.创建Vue实例:使用Vue构造函数创建一个Vue实例,将其挂载到一个HTML元素上。可以通过el选项指定挂载的元素,通过data选项定义数据。
4.数据绑定:使用双大括号语法或v-bind指令将数据绑定到HTML模板中。这样,当数据发生变化时,相关的视图也会自动更新。
5.事件处理:使用v-on指令绑定事件处理函数,可以在模板中调用Vue实例中定义的方法。也可以使用@缩写语法来绑定事件。
6.条件渲染和循环:使用v-if、v-else和v-for指令来进行条件渲染和循环渲染。可以根据条件显示或隐藏元素,也可以通过循环渲染列表数据。
7.组件化开发:将应用程序拆分为多个组件,每个组件都有自己的逻辑和视图。可以通过Vue.component方法定义全局组件,也可以在Vue实例中定义局部组件。
8.生命周期钩子:Vue提供了一些生命周期钩子函数,可以在组件创建、更新和销毁时执行相关的操作。可以使用这些钩子函数来进行初始化、异步请求、清理等操作。
9.路由管理:使用Vue Router进行前端路由管理,实现单页应用程序的页面切换和导航。可以定义路由映射表,配置路由参数和传递数据。
10.状态管理:使用Vuex进行应用程序的状态管理,实现数据的集中化存储和管理。可以定义状态、mutations、actions等,实现数据的变更和异步操作。
通过以上步骤,你可以初步掌握Vue.js的基本用法和开发流程。随着深入学习和实践,你可以进一步了解Vue.js的高级特性和最佳实践,提升自己的前端开发能力。