一、DOM vs 函数库 vs框架

DOM:  API繁琐

函数库:JQuery对DOM的每个步骤的API进行一对一的简化,但并没有改变DOM做事的步骤和方法。

框架:一个包含部分已经实现的功能的半成品项目,只是暂时缺少数据和个性化页面。

优点:彻底简化了开发的步骤,且彻底避免了大量重复的劳动。

缺点:需要转变观念。

二、什么是Vue

Vue是基于MVVM设计模式开发的渐进式的前端js框架

渐进式:可以有选择的,逐渐使用框架中的功能

vs  "全家桶":必须完整使用所有功能,不能掺杂其他技术

前端JS:Vue是纯前端的框架,无需node.js,就可以独立运行。但是,需要node.js在运行之前将vue

编译为浏览器认识的普通的HTML、CSS、和JS文件

何时:适合于以数据操作为主的项目。

三、如何使用Vue:

官网:https://cn.vuejs.org/

2种:

1.下载并引入vue.js文件

最新版本:2.5.x

开发版本:未压缩,带错误提示

生产版本:压缩,去掉错误提示

2.安装脚手架工具

四、Vue的原理:

旧式前端划分:

HTML:定义网页静态内容

CSS:定义网页静态样式

JS: 为网页添加动态行为

MVVM设计模式:

新的前端划分:

1.将一个.html文件,拆分为多个组件文件:.vue/.component

2.每个组件又细分为3部分:

1.界面(View):HTML和CSS

2.数据模型(Model):在内存中自己创建的或从服务器端请求来的保存页面

需要的所有数据的对象或数组:Ajax中的res

3.控制器(ViewModel/controller):自动将数据模型中的数据绑定/同步到页面需要的位置-----不再需要程序员

反复手工查找并修改元素。

控制器的原理:2大子系统:

1.响应系统:监视模型数据的变化,并通知框架修改页面的机制。

其实是将数据模型中每个属性变为一个访问属性

每次修改模型中的数据时,都会自动触发set

set会发出通知:“xx变量发生改变”

2.虚拟DOM树:扫描原始DOM而产生的一棵仅包含可能变化的元素的新的简版DOM树

优点:

1.仅包含可能变化的元素的个别属性----简单---遍历快

2.修改时,可仅找到发生变化的元素仅修改发生变化的元素-----效率高

vue对象创建时,首次扫描并创建虚拟DOM树

响应系统发出通知时:虚拟DOM树收到通知,并查找要修改的个别元素,实际修改DOM树。

五、绑定语法

什么是:在页面中使用特殊符号{{}}指定所需的变量名

学名:interpolation 插值语法

何时:只要页面的某个位置需要动态生成值时

如何:

{{模型变量名}}

{{表达式}}

表达式包括:算术计算,关系计算/逻辑运算,方法调用,访问数组元素,访问对象的属性,三目运算符

强调:不能写程序结构

if else if   else

for while do while

六、指令(directive)

什么是:为HTML提供新功能的特殊属性

为什么:{{}}只能绑定元素的内容(innerHTML),不能绑定属性/事件或执行结构

何时:不能使用{{}}绑定的位置,又想动态生成值,都要用各种指令来增强

如何:

1.v-bind:专门用于动态绑定属性值

何时:只要一个属性的值需要动态生成时

如何:完整:<ANY v-bind:属性=“表达式”>

可省略v-bind

2.v-for:专门根据一个数组中的元素,动态反复生成多段相同的页面内容

何时:只要根据一个数组中的元素,动态绑定页面内容时

如何:<ANY v-for="模型变量 of 数组类型模型变量">

根据of后数组中的元素个数,反复生成多个<ANY>元素

of 前的模型变量时临时决定的,获得数组中的一个当前元素

of 前的模型变量在,<ANY>内部可用于绑定

3.控制元素的显示隐藏:

v-if:专门根据一个条件表达式来决定当前元素是否显示

只有条件表达式为true时,当前元素才显示。

何时:只要根据一个条件控制元素的显示隐藏时

如何:

<ANY v-if="条件表达式 1"

<ANY v-else-if="条件表达式 2"

<ANY  v-else-if="......"

<ANY v-else //不同写条件

强调:v-if和v-else-if和v-else之间不能插入其他元素

v-show:专门根据一个条件表达式来决定当前元素是否显示

只有条件表达式为true时,当前元素才显示

采用display:block/none的方式显示隐藏

何时:如果仅控制一个元素的显示隐藏时,首选v-show

vs  v-if:采用添加删除元素的方式,控制显示隐藏

何时:多个元素选其一显示时,首选v-if v-else-if  v-else

七、绑定事件

界面View中:

<ANY v-on:事件名=“处理函数()”>

简写:v-on:可替换为@

new Vue({})中:

new Vue({

el:"选择器",

data:{模型变量},

methods:{//专门保存控制器所需所有自定义方法的属性

处理函数(){//处理函数:function(){

//this->当前Vue对象->vm

this.模型变量  //访问模型变量

}}

}

})

问题1:阻止默认行为

解决:2步:

1.界面:当事件发生时,自动调用js语句,并传入$event作为参数

<ANY @click="处理函数($event)">

$event就是DOM中的e,是vue封装的事件对象

2.new Vue()中:

methods:{

//定义形参,准备接事件对象

处理函数(e){

e.preventDefault();

}

}

简写:事件修饰符,对DOM中事件API的简写:

2个:

阻止默认行为:@click.prevent="处理函数()"

取消冒泡:@click.stop="处理函数()'=>e.stopPropagaton()

vue的相关知识的更多相关文章

  1. Vue.js相关知识4-路由

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. Vue.js相关知识3-路由

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. Vue.js相关知识2-组件

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. Vue.js相关知识1

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. Vue.js 相关知识(脚手架)

    1. vue-cli 简介 Vue-cli 是 vue的设计者,为提升开发效率而提供的一个脚手架工具,可通过vue-cli快速构造项目结构 2. vue-cli 安装步骤 安装npm 或 cnpm n ...

  6. Vue.js 相关知识(路由)

    1. 简介 路由,工作原理与路由器相似(路由器将网线总线的IP分发到每一台设备上),Vue中的路由根据用户在网页中的点击,将其引导到对应的页面. 2. 使用步骤 安装vue-router或者直接引入v ...

  7. Vue.js 相关知识(动画)

    1. 简介 Vue 在插入.更新或移除 DOM 时,提供多种不同方式的过渡效果,并提供 transition 组件来实现动画效果(用 transition 组件将需执行过渡效果的元素包裹) 语法:&l ...

  8. Vue.js 相关知识(组件)

    1. 组件介绍 组件(component),vue.js最强大的功能之一 作用:封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能调用该功能体 根组件:我们实例化的Vue对象就是一个组件 ...

  9. Vue.js 相关知识(基础)

    1. Vue.js 介绍 Vue,读音 /vjuː/,类似于 view),是一套用于构建用户界面的渐进式框架(重点在于视图层). 作者:尤雨溪 注:学习 vue.js 时,一定要抛弃 jQuery 的 ...

随机推荐

  1. CyclicBarrier 是如何做到等待多线程到达一起执行的?

    我们有些场景,是需要使用 多线各一起执行某些操作的,比如进行并发测试,比如进行多线程数据汇总. 自然,我们可以使用 CountDownLatch, CyclicBarrier, 以及多个 Thread ...

  2. [AI开发]视频结构化类应用的局限性

    算法不是通用的,基于深度学习的应用系统不但做不到通用,即使对于同一类业务场景,还需要为每个场景做定制.特殊处理,这样才能有可能到达实用标准.这种局限性在计算机视觉领域的应用中表现得尤其突出,本文介绍基 ...

  3. Python接口测试框架实战与自动化进阶☝☝☝

    Python接口测试框架实战与自动化进阶☝☝☝  一.fiddler在工作中的运用  1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...

  4. 配置Ant执行Jmeter脚本

    1.将 jmeter下extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中,否则会报错ant-jmeter-1.1.1不存在 2.在jmeter根目录下创建 ...

  5. Redis高级应用解析:缓存穿透、击穿、雪崩

    1 背景 像我们去面试一些大公司的时候,就会遇到一些关于缓存的问题.可能很多同学都是接触过,多多少少了解一些,但是如果没有好好记录这些内容,不熟练精通的话,在真正面试的时候,就很难答出来了. 在我们的 ...

  6. XSS扫盲到漏洞挖掘上手

    复习xss ,也总结一下XSS基础的点到进阶的知识  目录 0x01 XSS扫盲入门 0x02 XSS payload构造 0x03 XSS payload变形进阶   0x01 XSS扫盲入门 XS ...

  7. .Net Core3.0 配置Configuration

    准备 .NET core和.NET项目配置上有了很大的改变,支持的也更加丰富了比如命令行,环境变量,内存中.NET对象,设置文件等等..NET项目我们常常把配置信息放到webConfig 或者appC ...

  8. 聊聊缓存淘汰算法-LRU 实现原理

    前言 我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来.缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据.常用淘 ...

  9. Java基础(三十)泛型程序(Generic Programming)

    一.泛型程序的定义和使用 1.为什么要使用泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.同时,使得程序具有更好的可读性和安全性. ArrayList<String&g ...

  10. MyBatis与Spring的整合实例详解

    从之前的代码中可以看出直接使用 MyBatis 框架的 SqlSession 访问数据库并不简便.MyBatis 框架的重点是 SQL 映射文件,为方便后续学习,本节讲解 MyBatis 与 Spri ...