当前位置: 首页 > Web前端 > vue.js

[vue]Vue使用说明

时间:2023-03-31 18:42:57 vue.js

Vue使用说明v-textv-htmlv-showv-ifv-elsev-else-ifv-forv-onv-bindv-modelv-slotv-prev-cloakv-once1v-text更新元素textContent部分更新可以使用插值语法{{Mustache}}2v-hetmlupdate元素的innerHTML内容作为普通HTML插入——不会被编译为Vue模板在网站上动态渲染HTML是危险的,容易出现XSS攻击3v-showv-ifv-elsev-else-if条件渲染v-show相当于改变标签的显示v-if是真正的条件渲染,当值为falsy时,元素会被删除DOM结构v-elsev-else-if可以和v-if形成链式条件渲染,和日常的if-else代码块4v-forlist根据源数据渲染多个渲染元素或模块有类似的逻辑,表达式中的别名v-for的默认行为将尝试就地修改元素而不是移动它们。要强制对元素重新排序,需要一个特殊的属性键来提供排序提示表达式:ArrayObjectNumberStringIterable//array//对象//对象数组数据初始化:template->virtualDOM->realDOMkey作为virtualDOM中的一个标签属性,如果使用index作为key,数据更新后,新的virtualDOM会排列key不管更新的数据插入到哪个位置,数据更新将从0开始排列:NewTemplate->NewVirtualDOM->DiffalgorithmcomparesvirtualDOM->realDOM。在比较过程中,如果使用index作为key,首先比较key前后的DOM节点。由于key的重新排列,模板的复用率低,复用时也容易出错。如果使用数据的唯一标识作为键,那么在生成新的虚拟DOM时,会根据键进行比较。不会有太大变化。只有变化的部分才会被更新,没有变化的部分经过key比对后很容易被复用。当-for和v-if同时使用时,v-for的优先级高,表示会先渲染列表再判断是否渲染5v-on绑定事件监听器常用标签:监听原生DOM事件组件:监听自定义事件表达式:v-on:event="handle(param)"缩写:@parameter:事件处理函数中可以没有参数,可以传入多个参数。参数$event为触发的事件,通常可以通过$event.target来获取触发事件的元素。v-on之后,可以是触发事件的对象。v-on="{event1:handle1(),event2:handle2()}"5.1事件修饰符.stop:调用event.stopPropagation()阻止当前事件在捕获和冒泡阶段的进一步传播,不阻止任何默认行为不会发生。prevent:调用event.preventDefault()来阻止默认事件,比如某个标签href跳转,使用@click.prevent来阻止跳转改变行为。capture:添加事件监听时使用捕获方式元素发送发生冒泡时,有修饰符的元素先被触发,修饰符有多个,由外向内触发。self:仅当事件从绑定到侦听器的元素本身触发时才会触发回调。在冒泡阶段,从内部触发的事件不会在具有修饰符的父元素上触发。{keyCode|keyAlias}:回调仅在特定键触发事件时触发entertabdeleteescspaceupdownleftrightctrlaltshiftmeta.native:监听组件和元素的原生事件组件上的事件是默认情况下是一个自定义事件,需要由$emit触发。once:只触发一次。left:通过单击鼠标左键触发。right:通过单击鼠标右键触发。在{passive:true}模式下添加监听,告诉浏览器不要阻止默认行为,可以提高性能,事件捕获->事件冒泡->默认事件5.2.sync修饰符简化父子组件数据的双向绑定6v-bind动态绑定一个或多个属性,或者一个组件prop到一个表达式缩写::在组件上绑定时,需要在组件中使用props声明,然后才能使用6.1类和样式绑定动态切换类和绑定Linkedstyleclass//objectform

//arrayform-availableternaryoperatorandobject
style//对象形式——可以三元运算
//数组形式-多个样式对象
Vue会自动添加浏览器引擎前缀对象形式的属性值可以是数组,添加多个值6.2Modifier.prop.camel.sync.prop:绑定为DOM属性设置而不是绑定为属性.camel:将kebab-case属性名称转换为camelCase,并将-connected属性名称更改为camelCase.sync:展开为A更新父组件绑定值的v-on监听器//不使用.sync的方式//父组件//subcomponent父组件传递数据并在组件上绑定定义自定义事件,子组件props接收数据,并触发事件//父组件//子组件父组件在传递数据时添加.sync修饰符,无需绑定event子组件触发update:data事件,data为监听数据7v-model创建两个表单控件或组件上的方式绑定7.1表单控件绑定v-model本质上是v-bind和事件绑定的语法糖作为道具并作为事件改变复选框的绑定可以有两个值true-value和false-value,表示选中的值和未选中的值可以动态绑定7.2自定义的组件绑定v-modelcomponent//父组件//子组件使用模型选项声明绑定数据和自定义触发事件,以避免绑定值和选中复选框之间的冲突。绑定和.sync修饰符双向绑定比较7.3修饰符.lazy:从输入事件触发同步数据,改变事件同步。number:将用户输入的值转换为数字类型。trim:自动过滤用户输入的前导和尾随空白8v-slot提供命名槽或需要接收prop缩写的槽:#vm.slots和vm.scopedSlots属性slots9v-pre无表达式跳过该元素的编译过程及其子元素跳过大量没有指令的节点会加速编译10v-cloak没有表达式指令留在元素上直到关联实例结束编译为css属性选择器,与display:none一起使用来avoidinterpolationsyntaxonthepage{{}}11v-oncenoexpression只渲染元素和组件一次,后续重新渲染,元素/组件及其所有子节点将被视为静态内容,并为组件跳过很多静态内容,可以在根元素上加上这条指令,提高渲染速度