Vue 框架诞生于2014年,其作者为中国人--尤雨溪。

Vue用于构建交互式的Web界面的库,是一个构建数据驱动的Web界面渐进式框架,该框架遵循CMD规范,并且提供的设计模式为MVVM模式。

(Model-View-View-Model),和一个可组合的组合型组件系统,具有简单的、灵活的API接口。

该框架继承了React的虚拟DOM技术和Angular的双向数据绑定技术,是一款较新的功能性框架。

那什么是虚拟DOM和双向数据绑定呢?

1、虚拟DOM:虚构的DOM树,当我们用传统的原生API或者jQuery去操作DOM时,浏览器会从构建DOM树开始从头到尾执行一遍流程。

为了解决浏览器性能问题,虚拟DOM就被设计出来了,其核心算法是DIFF算法。它会将一次操作过程中对真实DOM所有更新的diff内容保存到本地的一个js对象中,等更新完成后,再将最终的js对象映射成真实的DOM,交由浏览器去绘制。,最终将这个js对象一次性attach到DOM树上,通知浏览器去执行绘制工作,避免了大量的无谓的计算量。

用js对象模拟DOM节点的好处是:页面的更新可以先全部反应在js对象上,操作内存中的js对象的速度要快很多。

2、双向数据绑定:

单向数据绑定:把Model绑定到View上,当我们用Java代码更新Model时,View就会自动更新了。

那么双向数据绑定就是,不仅具有上面的单向转换,而且用户更新了View,Model的数据也会自动被更新(Model<-->View)。

那View什么时候可以由用户更新呢?

举个例子,填写表单,当用户填写表单时,View的状态就被更新了,如果此时MVVM框架可以自动更新Model的状态,那么就相当于我们把Model和View做了双向数据绑定。

其原理是我们要对input进行value 的属性绑定(v-bind:value=”...”)

将Model中的变量绑定到View上(Model->View)

以及当用户对input进行操作时,进行事件监听(v-on:input=”...”)

将View上的更新传回Model中(View->Model)

从而实现双向数据绑定,在Vue中,以上操作过于繁琐,便提供了v-model直接实现双向数据绑定的效果。

在进行Vue项目开发过程中,我们可以通过标签引入式写法来引入vue或者是nodejs自带的包管理工具npm安装vue。

并且通过new Vue()进行新建一个Vue的实例对象,其下有很多属性,包括el、data、methods、computed、watch等等,el为指向页面的节点元素,data存储数据,数据类型包括simple datatype(简单数据类型),以及complex datatype(复杂数据类型)。

用插值表达式{{}}显示,在插值显示的时候,不需要写上data,methods内存储方法,通过fn()的形式调用方法,computed内存储也是方法,但是其为计算数据,复杂逻辑的应该存储在computed中。

计算属性是基于它们的依赖进行缓存的,由于computed带有一层缓存,所以只有在它的相关依赖发生改变时才会重新运行,而methods则是调用一次生成一次,computed中的方法调用时不需要加()的。

watch为监听,监控,监听data中的属性值也可以监控对象,存在两个参数(currentValue当前值和prevValue之前值)。

在Vue中,html的任何属性都不能用{{}}(插值表达式)来进行设置

要用v-bind:来进行属性绑定,v-bind:可以简写为 :

当我们需要对事件进行监听的时候需要用v-on:来进行事件绑定,v-on:可以简写为@,v-once单次渲染,v-html渲染html

在input、select、textarea中我们可以用v-model:进行双向数据绑定,可以用v-for进行数据循环,v-if/v-else-if/v-else进行数据判断

利用v-show显示与隐藏DOM节点,在Vue中还存在很多修饰符如取消事件冒泡(.stop),回车键(.enter),空格键(.space),取消默认事件(.prevent)等等,可以对DOM设置ref属性进行本地指向,类似于id

当我们对一个对象进行v-for循环时要对该对象设置key值,起到标识唯一性,便于检测以及提高性能的作用。

在Vue的实例对象下面还存在很多钩子函数,总体分为三大块(创建、更新、销毁):

1、创建阶段,存在beforeCreate(){}、created(){}、beforeMount(){}、mounted(){}等钩子函数;

2、更新阶段,存在beforeUpdate(){}、updated(){}等钩子函数;

3、销毁阶段,存在beforeDestroy(){}、destroyed(){}等钩子函数;上述钩子函数不包括全部,一个生命周期内存在很多钩子函数,不能一一列举。

Vue.js框架:

Vue.js是一套构建用户界面的渐进式框架

Vue只关注图层,采用自底向上增量开发的设计

Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件

Vue第一个实例Hello World

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Vue 测试实例 </title>

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

</head>

<body>

<div>

<p>{{message}}</p>

</div>

<script>

new Vue({

el: '#app',

data: {

message: 'Hello Vue.js!'

}

})

</script>

</body>

</html>

十分钟带你了解Vue框架相关推荐

  1. 十分钟带你理解Kubernetes核心概念

    原文地址:http://www.dockone.io/article/932 十分钟带你理解Kubernetes核心概念 本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubern ...

  2. 十分钟带你打造unity3d第一人称射击

    那抱歉,上次那个Unity+kinect还没有更新,最近在深一步研究,不久将更新(绝对不负众望)!现在进入正题,十分钟带你打造unity3D第一人称射击游戏! 看完本篇博客,你将学会第一人称控制,粒子 ...

  3. 简单易懂!十分钟带你了解:统计学到底是干什么的

    CDA数据分析师 出品 编译:Mika [导读] 统计学在我们的日常生活中无处不在,它有助于我们更好地了解世界,并做出更好的决策. 在今天的内容里,我们将带你用十分钟了解:统计学到底是关于什么的一门学 ...

  4. Bee框架,一个十分钟即可学会的ORM框架--Bee

    Bee 是一个ORM框架.关注:省时/优雅.简易.自动( Tea: Timesaving/Tasteful, Easy, Automatic) 特性.减少开发人员的编码量,只为一个目标--让别人不再叫 ...

  5. 这是我见过最好的Python教程:十分钟带你认识Python

    这篇文章主要介绍了简洁的十分钟Python入门教程,Python语言本身的简洁也使得网络上各种Python快门入门教程有着很高的人气,本文是国内此类其中的一篇,需要的朋友可以参考下 [简介] Pyth ...

  6. 移动端视频开发通过什么方式实现直播?十分钟带你快速了解

    原文链接:https://www.jianshu.com/p/92b71382724f 本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 现在的移动端的音视频这些在近段时间非 ...

  7. 依赖 netty spring_十分钟带你了解Spring的七大知识点,程序员必了解

    Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶.它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflo ...

  8. 基于昇腾CANN的卡通图像生成可在线体验啦!十分钟带你了解CANN应用开发全流程

    摘要:CANN作为昇腾AI处理器的发动机,支持业界多种主流的AI框架,包括MindSpore.TensorFlow.Pytorch.Caffe等,并提供1200多个基础算子. 2021年7月8日,第四 ...

  9. [k8s] 第一章 十分钟带你理解Kubernetes核心概念

    本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

最新文章

  1. 使用python xmodem 模块下载及上传文件
  2. 十九、“文捷笔妙活如水,气定神闲稳若山。”(2021.6.7)
  3. 实现自己的轻量级http调用工具
  4. 前端后台管理系统梳理
  5. python基本运算符_06-Python基础知识学习---基本运算符
  6. Eclipse无法设置NDK路径的解决方法
  7. 如何写出让同事膜拜的漂亮代码?
  8. Node.js 创建第一个应用
  9. 【JAVA基础】Java基础之-代理详解
  10. Linux基础命令:awk
  11. windows动态ip和静态ip的bat文件
  12. 《Adobe Photoshop CS6中文版经典教程》目录—导读
  13. java ocr数字识别_使用Tesseract Ocr识别数字
  14. HTML+CSS+JS网页设计与制作期末大作业:网站——宏源山庄
  15. java实现OCR图文识别Tess4j,高准确率高效率
  16. DBC文件的编辑方法
  17. win7工作组计算机无法连接打印机,Win7计算机无法连接到Win10共享打印机解决方案...
  18. 基于网易企业邮箱的JavaMail配置
  19. react里子父通信和父子通信的实现
  20. XMind ,有道云笔记, Effie ,谁会为公众号主减轻压力?

热门文章

  1. Flutter 添加APP启动 Story View
  2. Unity的2.5D效果探究
  3. bat批处理删除文件
  4. 如何在linux中安装matlab.iso
  5. 剑网3虚拟机,总是登不上,提示无法连接服务器。。。愁死了?
  6. 在浏览器中创建一个多人海盗射击游戏:
  7. stm32 薄膜键盘原理_6.4 STM32F103ZET独立按键功能深入剖析(神舟III号)
  8. 数据包工具--Scapy基础篇
  9. iis环境下dz后缀portal.php,iis下DZ论坛的静态化功能
  10. c语言如何读取avi文件,avilib库的使用