vue01----虚拟DOM、指令、事件修饰符、按键修饰符、双向数据绑定、v-if和v-show的区别

### 虚拟DOM:

虚拟DOM就是内存中的一个变量,是一个对象结构

前端效率优化:最致命的问题就是DOM操作,尽量减少DOM操作

vue的高效:

1、虚拟DOM页面渲染高效

2、js   ①获取数据②根据数据渲染界面DOM操作 for

vue将开发者的精力从DOM操作上转移到了数据操作上,数据变页面变

### 指令:

内置指令

v-if

v-show

v-on----事件绑定

语法:  v-on:事件名称="事件函数"

v-on:click="事件函数"

简写:  @事件名称(需要传参时加(),不需要传参时不用加()。在事件函数中,用this可以访问到data中的数据:this.msg=1907)

事件对象:($event)

如果需要事件对象,只需要给函数传递一个$event。

@click="clickHandler($event)"   将事件对象e传过去,默认参数是事件对象,不传参时,参数默认是e;如果有其他参数,需要通过$event手动传递。

v-test

值为data中的数据,null和undefined无法显示,可以用三元表达式进行判断

1、解析data中的数据

2、可以解析js的表达式

底层原理:innerText

简写:{{}}----插值法

v-html

值为data中的数据

1、解析data中的数据

2、可以解析js的表达式

底层原理:innerHTML

v-html和v-text是一样的,不同的是v-html可以解析html标签

v-bind

给元素绑定属性

语法:v-bind:属性=属性值

简写:  :属性=属性值

v-bind绑定class:

myClass:"box1 box2"

myClass:["box1","box2"]

myClass:{

box1:true,

box2:true

}

v-for

用来遍历数组、对象、字符串、数字……

如果报波浪线警告,加    :key="index"

v-pre

不解析{{}}

v-cloak

防止{{}}在vue.js没有加载进来的时候显示,需要写个样式:[v-clock]:{display:none;}

v-once

数据值解析一次

自定义指令

创建一个自动聚焦的自定义指令:

Vue.directive("focus",{

inserted(el){

el.focus()

}

})

### 事件修饰符:

stop    阻止冒泡    @contextmenu.prevent=""----阻止右键默认事件

self    只针对自己有效

prevent     阻止浏览器默认事件

enter   按下回车    @keydown.enter="downClick"----按下回车时触发事件

once    事件只绑定一次      语法:指令.修饰符.修饰符

capture     取消捕获

### 按键修饰符:(效率更高)

enter   @keyup.enter----按下enter键抬起时触发

esc     @keyup.esc----按下esc键抬起时触发

left    @keyup.left----按下left键抬起时触发

right   @keyup.right----按下right键抬起时触发

up

down

tab

delete

space

### 双向数据绑定

v-model----将表单元素的value和data数据绑定

### Q:

1、v-if和v-show的区别:

①v-if底层是控制元素的创建和销毁,v-show是操作元素的display属性。v-if的开销要大一点,判断登录和未登录状态时用这个,但是它并未操作DOM,vue中都是操作的虚拟DOM。

②v-if配合v-else-if和v-else使用。

场景:v-if  权限校验的时候

v-show  展示页面,类似于一些选项卡

原文地址:https://www.cnblogs.com/wuqilang/p/12271288.html

时间: 2024-10-17 00:37:55

vue01----虚拟DOM、指令、事件修饰符、按键修饰符、双向数据绑定、v-if和v-show的区别的相关文章

vue 示范模板 指令 按键修饰符

原文链接地址:https://my.oschina.net/u/4087782/blog/3119601 模板示范 <div id="d1"> </div> <script> new Vue({ el:"#d1", // 作用的区域 data:{ // 参数 }, methods:{ // 函数 }, computed:{ // 计算数据函数 }, create:{ // 页面开始加载时运行 } }) </script>

418 vue自定义按键修饰符

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="app"> <input type="text" v-on:keyup.aaa='handle

Vue之@click、事件修饰符@click.stop与@click.prevent、按键修饰符@keyup.enter

1.绑定监听@click: (以监听click为例,其他如keyup,用法类似)  v-on:click="fun"  @click="fun"  @click="fun(参数)" <button @click="test1">test1</button> <button @click="test2('abc')">test2</button> <but

Vue 自定义按键修饰符

如点击F2 触发某个事件 <input type="button" name="" id="" value="添加" @keyup.f2="add" /> 自定义全局按键修饰符 Vue.config.keyCodes.f2 =113 其他自定义按键同理,只是编码数字需要自己去找. 原文地址:https://www.cnblogs.com/youmingkuang/p/11616785.html

当使用vue的按键修饰符不起效果的时候怎么办?如@keyup.enter = &#39;&#39; ;

这个问题困扰了我一个多小时,各种测bug !始终测不出来! 直接上代码(错误示范) <el-form-item prop="password"> <el-input @keyup.enter="check('form')" //在vue中这个代码是可行的 type="password" v-model="form.password" placeholder="密码" prefix-icon

vue中的按键修饰符

在版本2中这样定义的 1. .enter  (回车键) 2. .tab 3..delete  (捕获”删除“和”退格“键) 4. .esc      (退出键) 5. .space  (空格键) 6.  . up 7.  .dowm 8.  .left 9.  .right  (右箭头) 可以通过 Vue.config.keyCodes.f2=113 自定义按键修饰符   f2 是自定义的名称   ,113是键盘对应的码值 原文地址:https://www.cnblogs.com/Progres

虚拟DOM

DOM(Document Object Model)是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如果对前端工作进行抽象的话,主要就是维护状态和更新视图:而更新视图和维护状态都需要DOM操作. 在jQuery出现以前,我们直接操作DOM结构,这种方法复杂度高,兼容性也较差:有了jQuery强大的选择器以及高度封装的API,我们可以更方便的操作DOM,jQuery帮我们处理兼容性问题,同时也使DOM操作变得简单:MVVM使用数据双向绑定,使得我们完全不需要

为什么虚拟DOM更优胜一筹

注意: 虚拟DOM只是实现MVVM的一种方案,或者说是视图更新的一种策略.没有虚拟DOM比MVVM更好一说. 我们回顾传统MVC框架,如backbone,它是将某个模板编译成模板函数,需要更新时,是自己手动将数据整体传入模板函数, 得到一个字符串,使用innerHTML刷新某个容器!注意,这里其实可以优化,但由于是手动,是体力活,都是使用很粗放型的innerhTML了事 (使用jQuery的html方法性能会更差,不过好处是它处理了IE下的innerHTML BUG及全平台的无法执行内部的scr

Vue源码探究-虚拟DOM的渲染

Vue源码探究-虚拟DOM的渲染 在虚拟节点的实现一篇中,除了知道了 VNode 类的实现之外,还简要地整理了一下DOM渲染的路径.在这一篇中,主要来分析一下两条路径的具体实现代码. 按照创建 Vue 实例后的一般执行流程,首先来看看实例初始化时对渲染模块的初始处理.这也是开始 mount 路径的前一步.初始包括两部分,一是向 Vue 类原型对象上挂载渲染相关的方法,而是初始化渲染相关的属性. 渲染的初始化 下面代码位于vue/src/core/instance/render.js 相关属性初始