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

Vue基础入门

Vue基础入门

1.重点内容

1.重点

  • 了解Web前端技术发展简史
  • Vue的核心设计思想及优势
  • 了解Vue开发环境的搭建

2.初识Vue

2.1Web前端技术发展简史

1.发展

  • 静态页面阶段1.0
  • Javascript诞生及第一次浏览器战争
  • 动态页面的发展
  • Ajax的流行开启Web2.0时代
  • 前端兼容性框架的出现
  • HTML5出现及第二次浏览器战争
  • Node.js爆发
  • 前端MV*架构及SPA时代的开启
  • 移动Web和Hybrid App
  • ECMAScript6
  • 今天的前端

2.Ajax简介

  • Ajax技术中实现的异步HTTP请求,这让页面无需刷新就可以发起HTTP请求,用户也不用专门等待请求的响应,而是可以继续网页的浏览或操作。

3.今天的前端

  • 今天的前端技术已经形成了一个大的技术系统。
  • 以Github为代表的代码管理仓库;
  • NPM和Yarn为代表的包管理工具;
  • ES6及Babel和TypeScript构成的脚本体系;
  • HTML5;
  • CSS3和相应的处理技术;
  • React、Vue、Anjular为代表的框架;
  • Webpack为代表的打包工具;
  • Node.js为基础的Express和KOA后端框架;
  • Hybrid技术。

4.GitHub简介:

  • GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
    GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
    目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。
    GitHub是很多开发者远程协作的重要工具,其社交化编码的理念伴随着开源运动改变着整个开发社区的生态,无数优质项目依托GitHub在全球开源开发者的参与下蓬勃发展。

5.Node.js简介

  • Node.js (简称为Node)是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、JSP、ASP.NET等服务端语言平起平坐的脚本语言,用于方便地搭建响应速度快、易于扩展的中小型网络应用。
    Node发布于2009年5月,由Ryan Dahl(瑞安·达尔)开发,实质是对Chrome V8引擎进行了封装,V8引擎执行Javascript的速度非常快,性能非常好。
    Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。
    Node以Chrome的V8引擎为基础,基于事件循环的异步I/O框架,轻量高效,非常适合在分布式设备上运行数据密集型的实时应用。

6.Node.js的框架

  • 简介:Express和Koa后端框架都是Node.js的主流应用开发框架。
    Express后端框架是一个完整的Node.js应用框架。Koa后端框架是由Express团队开发的,但是它有不同的关注点。
    Express后端框架是基于Node.js平台的极简、灵活的Web应用开发框架,主要基于Connect中间件,并且自身封装了路由、视图处理等功能。
    Koa后端框架是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。Koa后端框架并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

2.2前端领域中的MV*模式

2.2.1单页应用

1.单页应用简介

  • 在前端领域中,SPA应用(单页应用)开始被广泛使用。
    但是如果依旧使用DOM操作的模式来开发SPA,整个开发过程会比较繁琐,后期难以维护,为了解决这一问题,前端开发者们提出了MV模式。
    MV模式将View中的逻辑分离出去,形成一个弱逻辑的易于维护的视图。
    MV模式中的是Model和View的桥梁,负责保持Model和View的同步。

2.2.2MVC模式

1.MVC简介

  • MVC模式(Model-View-Controller),即数据模型、视图、控制器三个部分。
    每个部分都有自己的职责:
    M: 数据模型,负责存放请求的数据结果;
    V:视图,用来承载DOM的展示,包括更新渲染;
    C:事件控制函数,用来根据前端路由条件来调用不同的Model传递给View渲染不同的数据内容。
    整个流程其实很简单,通过监听URL或者用户点击等操作 来触发Controller,从而来进行改变数据、视图。

2.MVC原理?

  • 1.View 传送指令到 Controller。
  • 2.Controller 完成业务逻辑后,要求 Model 改变状态。
  • 3.Model 将新的数据发送到 View,用户得到反馈。
    在MVC模式中,所有通信都是单向的

3.MVC缺点?

  • MVC模式的业务逻辑主要集中在Controller,当每个事件都流经Controller时,这层会变得十分臃肿。
    而且MVC中View和Controller一般是一一对应的,捆绑起来表示一个组件,视图与控制器间的过于紧密的连接影响了Controller的复用性。

2.2.3MVP模式

1.简介:

  • MVP(Model-View-Presenter)是MVC模式的改良,由IBM的子公司Taligent提出。
    与MVC相比,Presenter成为View和Model的中介,MVP模式通过解耦View和Model,完全分离视图和模型使职责划分更加清晰;由于View不依赖Model,可以将View抽离出来做成组件,它只需要提供一系列接口提供给上层操作。

2.MVP原理图?

  • 1.View 与 Model 不发生联系,都通过 Presenter 传递。
  • 2.View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

3.MVP缺点?

  • Presenter作为View和Model之间的“中间人”,除了基本的业务逻辑外,还有大量代码需要对从View到Model和从Model到View的数据进行“手动同步”,这样Presenter显得很重,维护起来会比较困难。
    而且由于没有数据绑定,如果Presenter对视图渲染的需求增多,它不得不过多关注特定的视图,一旦视图需求发生改变,Presenter也需要改动。

2.2.4MVVM模式

1.MVVM简介:

  • MVVM(Model-View-ViewModel)最早由微软提出。
    MVVM把View和Model的同步逻辑自动化了。以前Presenter负责的View和Model同步工作交给框架所提供的双向数据绑定功能进行负责,只需要告诉View显示的数据对应的是Model哪一部分即可。
    MVVM可以认为是一个自动化的MVP,只不过使用了ViewModel替代了Presenter。即数据Model的调用和视图View的渲染不需要我们主动操作,而是ViewModel自动触发来完成。
    整体来看,MVVM比MVC/MVP精简了很多,不仅仅简化了业务与界面的依赖,还解决了数据频繁更新。

2.MVVM原理图?

样子和MVP的样子差不多,但是非常好用

2.3前端三剑客 React、Angular、Vue比较

要记住哦!

1.前端三剑客

  • React使用的是MVC框架。
  • Angular使用的MVVM的思想。
  • Vue一定意义上算是React和Angular的集大成者。它吸取了MVVM的数据管理思想,同时应用了React的virtual Dom(虚拟dom)算法。

2.React?

  • React使用的是MVC框架。所有MVC框架都是单向数据流的。(MVC是一个圈)
  • 使用Virtual DOM。
  • 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件。
  • 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。

3.Angular?

  • Angular使用的MVVM的思想,当触发UI事件,ajax请求或者timeout延迟,会触发脏检查。这时会调用 $digest 循环遍历所有的listener里的数据,判断当前值是否和先前的值有区别,如果检测到变化的话,会调用$watch 函数,最后把所有的变化全部更新,调用apply()方法把新的数据渲染到页面上。
  • 优点:一次检测会收集所有的数据变化,然后统一更新 UI(影响性能),大大减少了操作 DOM 的次数。
  • 缺点:只要有ui操作,ajax,settimeout就会进行检查,且当watcher之间相互影响的时候,更会触发多次$digest循环,这样watcher一多,就会很影响性能

4.Vue?

  • Vue一定意义上算是React和Angular的集大成者。它吸取了MVVM的数据管理思想,同时应用了React的virtual Dom算法。
  • 它使用了双向数据绑定来满足开发的便捷,但是在不同组件之间又使用单向数据流,来保证数据的可控性。
  • 它使用了很多Angular的指令语法,但是他革新了Angular的脏数据检查机制,使用数据劫持(监听数据变化)的方法来触发数据检查机制。
  • 它借鉴了React的组件化思想,大大增加了前端工程的结构规范化。

2.4Vue的优势

1.Vue的优势?

  • 轻量级:Vue简单、直接,所以Vue使用起来更加友好。
  • 双向数据绑定:数据驱动视图,视图也可以驱动数据。
  • 指令:指令绑定在元素上时,指令会给绑定的元素添加一些特殊的行为。
  • 插件:插件用于对Vue框架功能进行扩展。

3.Vue开发环境

3.1Visual Studio Code编辑器

1.下载地址

  • Visual Studio Code下载地址:https://code.visualstudio.com/Download。

2.VSCode的好处?

  • 轻巧极速,占用系统资源较少。
  • 具备语法高亮显示、智能代码补全、自定义快捷键和代码匹配等功能。
  • 跨平台。
  • 主题界面的设计比较人性化。
  • 提供了丰富的插件

3.2Vue的下载和引入

1.Vue官网?

  • https://cn.vuejs.org/

2.Vue2x官方文档?

  • https://cn.vuejs.org/v2/guide/installation.html

3.下载之后的引入

<script src="vue.js"></script>

4.CDN的引入方式?

<script src="https://cdn.jsdelivr.net/npm/vue@2.7.10/dist/vue.js"></script>

3.3Chrome谷歌浏览器

1.谷歌浏览器的优点

  • Chrome浏览器首先是速度快,启动速度、载入网页都相当迅速,这是最大的优点。
  • 界面简洁,外观清爽。
  • 稳定性好,与WINDOWS系统的兼容性强,这也是为什么微软会放弃ie推出以chromium为核心的新版edge浏览器了。
  • 丰富而强大的扩展。以chromium为核心的浏览器之所以强悍,扩展是主要原因,扩展赋予浏览器前所未有的能力。
  • 操作简单和设置方便,火狐浏览器扩展也很厉害,但是火狐的设置需要比较高的浏览器知识储备才能玩好,Chrome浏览器则比较简单。

相关文章:

  • React 入门:组件实例三大属性之props
  • 云原生 | kubernetes - Ingress
  • 为什么在激活 think-cell 时我的 Excel 宏速度缓慢?
  • ESP8266-Arduino网络编程实例-BME280传感器数据仪表显示
  • 使用VScode创建ipynb文件选择kernel运行python代码
  • API接口测试-postman批量执行测试用例及参数化
  • 【Linux集群教程】15 集群装机 - Cobbler 简介和搭建
  • C · 进阶 | 慎看!深剖文件操作,怕你停不下
  • 【JavaWeb】之MVC三层架构
  • 算法模型总结:二分查找
  • 基于遗传算法的二进制图像重建(Matlab代码实现)
  • opencv训练自己的模型,实现特定物体的识别
  • Long类型的数据,后端传给前端产生的精度丢失问题
  • 机器学习之神经网络的公式推导与python代码(手写+pytorch)实现
  • Spring | Spring整合Mybatis
  • canvas绘制圆角头像
  • CentOS7 安装JDK
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Git的一些常用操作
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript设计模式系列一:工厂模式
  • Magento 1.x 中文订单打印乱码
  • MaxCompute访问TableStore(OTS) 数据
  • pdf文件如何在线转换为jpg图片
  • spring security oauth2 password授权模式
  • sublime配置文件
  • ------- 计算机网络基础
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 从如何停掉 Promise 链说起
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #{}和${}的区别是什么 -- java面试
  • #微信小程序:微信小程序常见的配置传旨
  • (70min)字节暑假实习二面(已挂)
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)SpringBoot3---尚硅谷总结
  • (转)Oracle存储过程编写经验和优化措施
  • .Net CF下精确的计时器
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .py文件应该怎样打开?
  • .ui文件相关
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • :=
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [AAuto]给百宝箱增加娱乐功能
  • [android] 练习PopupWindow实现对话框
  • [BJDCTF 2020]easy_md5
  • [C#]DataTable常用操作总结【转】
  • [C/C++随笔] char与unsigned char区别
  • [CF]Codeforces Round #551 (Div. 2)
  • [codeforces]Checkpoints