vue的相关知识
一、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的相关知识的更多相关文章
- Vue.js相关知识4-路由
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Vue.js相关知识3-路由
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Vue.js相关知识2-组件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Vue.js相关知识1
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Vue.js 相关知识(脚手架)
1. vue-cli 简介 Vue-cli 是 vue的设计者,为提升开发效率而提供的一个脚手架工具,可通过vue-cli快速构造项目结构 2. vue-cli 安装步骤 安装npm 或 cnpm n ...
- Vue.js 相关知识(路由)
1. 简介 路由,工作原理与路由器相似(路由器将网线总线的IP分发到每一台设备上),Vue中的路由根据用户在网页中的点击,将其引导到对应的页面. 2. 使用步骤 安装vue-router或者直接引入v ...
- Vue.js 相关知识(动画)
1. 简介 Vue 在插入.更新或移除 DOM 时,提供多种不同方式的过渡效果,并提供 transition 组件来实现动画效果(用 transition 组件将需执行过渡效果的元素包裹) 语法:&l ...
- Vue.js 相关知识(组件)
1. 组件介绍 组件(component),vue.js最强大的功能之一 作用:封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能调用该功能体 根组件:我们实例化的Vue对象就是一个组件 ...
- Vue.js 相关知识(基础)
1. Vue.js 介绍 Vue,读音 /vjuː/,类似于 view),是一套用于构建用户界面的渐进式框架(重点在于视图层). 作者:尤雨溪 注:学习 vue.js 时,一定要抛弃 jQuery 的 ...
随机推荐
- Mybatis入门简版(一)
一.Mybatis介绍 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创 ...
- Centos 7.2天兔(Lepus 3.8)数据库监控系统部署
天兔(Lepus 3.8)数据库监控系统部署 转载自:https://blog.csdn.net/m0_38039437/article/details/79613260 一.安装LAMP基础环境 首 ...
- JVM系列一:JVM内存模型
今天起开始总结JVM.自己也看了好多JVM相关的知识,在此做个总结. 打算分为五个部分来讲:JVM内存模型.JVM类加载机制.JVM垃圾回收机制.JVM启动参数设置及优化.JVM其他相关. 今天首先来 ...
- 代码审计-Beescms_V4.0
Beescms_V4.0代码审计源于一场AWD线下比赛的漏洞源码 看了别的师傅的文章发现这个源码也非常简单 ,所以今晚简单审计过一遍. 0x01 预留后门 awd首先备份源码,然后下载下来查杀后门, ...
- 机器学习:不平衡信息有序平均加权最近邻算法IFROWANN
一 背景介绍 不平衡信息,特点是少数信息更珍贵,多数信息没有代表性.所以一般的分类算法会被多数信息影响,而忽略少数信息的重要性. 解决策略: 1.数据级别 (1)上采样:增加稀有类成本数 (2)下采样 ...
- opencv::源码编译
环境:win10.vs2017.cmake .java.python3.7默认安装. opencv源码:opencv-.zip opencv拓展库源码:opencv_contrib-.zip (注意: ...
- nginx::配置https/反向代理
vim /etc/nginx/nginx.conf user nginx; worker_processes ; error_log /var/log/nginx/error.log warn; pi ...
- std::unordered_map
map与unordered_map的区别 1.map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素, 因此,对 ...
- 如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch
在开发过程中,我们经常会遇到对业务数据进行模糊搜索的需求,例如电商网站对于商品的搜索,以及内容网站对于内容的关键字检索等等.对于这些高级的搜索功能,显然数据库的 Like 是不合适的,通常我们采用 E ...
- pytest5-使用conftest.py实现多文件共享fixture
一个测试工程下是可以有多个conftest.py的文件,一般在工程根目录放一个conftest.py起到全局作用.在不同的测试子目录也可以放conftest.py,作用范围只在该层级以及以下目录生效. ...