Vue渲染、基础语法、指令

一、模板语法

(1)插值

  1. 文本{{ }}在这里插入图片描述在这里插入图片描述

插值表达式作用:将data对象中数据渲染到页面
支持二元运算{{10+20}}
支持三元运算{{10>20?'aaaa':'bbbb'}}
支持变量{{myname}}
支持访问数组元素{{datalist}} {{datalist[0]}}
支持创建对象{{obj}} {{obj.age}}
不支持分支和循环语句

v-once:通过使用v-once指令,执行一次性插值
(当数据改变时,插值的内容不会继续更新)

在这里插入图片描述

在这里插入图片描述

  1. 纯html
    在这里插入图片描述在这里插入图片描述

动态渲染的html容易导致XSS,csrf攻击,可以对可信的内容使用html插值,不能对用户提供的内容使用插值
防止xss,csrf攻击:a.前端过滤;b.后台转义(<> &lt &gt);c.给cookie加上属性http

二、指令

(1)v-bind

在这里插入图片描述
在这里插入图片描述

v-bind:属性名=“属性值”
:属性名=“属性值” ------简写
使用v-bind指令,为元素的属性节点动态绑定值
在这里插入图片描述
在这里插入图片描述
使用v-bind属性绑定期间,如果绑定内容需要进行动态拼接,字符串外面应该包裹单引号。

(2)v-on

在这里插入图片描述

v-on:事件 =“方法”
@事件=“方法”-------简写

(3)v-if

在这里插入图片描述

v-if指令:如果isCreated是false时,节点删除

(4)v-show

在这里插入图片描述

v-show指令:如果isShow是false时,元素隐藏

(5)v-for

在这里插入图片描述在这里插入图片描述

v-for指令:遍历数组、对象、字符串
在这里插入图片描述

(6)v-model

在这里插入图片描述

在这里插入图片描述

v-model指令:双向绑定,使用场景为表单,用于便捷地设置和获取表单元素(input,textarea)的值

三、vue渲染

(1)条件渲染

  • v-if 动态创建和删除,满足条件创建,不满足条件删除
  • v-else v-else-if
  • template 包装元素template不会被创建
  • v-show

在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)列表渲染

  1. v-for

in
of
在这里插入图片描述在这里插入图片描述
in和of的区别
in在数组中打印索引号,of在数组中打印数组内容
in在对象中打印变量,of在对象中不支持
在这里插入图片描述

  1. key

跟踪每个节点的身份,从而重用和重新排序现有元素;
理想的key值是每项都有的且唯一的id(data.id)
key值得使用可以提高效率,根据key值判断一个值是否修改,如果修改则重新渲染该项,否则复用之前的元素。

四、附加

(1)数组增加删除

增加:vm.datalist.push("444")
删除:vm.datalist.splice(1,1)
替换:vm.datalist.splice(1,1,"0")
清空:vm.datalist=[]

在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)class与style

  1. 绑定html和class

对象写法:Vue.set(vm.classobject,“d”,true)
数组写法:vm.classarr.push(“d”) vm.classarr.splice(1,1)

  1. 绑定内联样式

对象写法:Vue.set(vm.styleobj,“fontSize”,30px)
数组写法:vm.stylearr.push({fontSize:“30px”})

在这里插入图片描述
在这里插入图片描述

(3)数组更新

  1. 使用以下方法操作数组可以检测变动(原数组被改变,get set拦截)

push():向数组末尾添加一个或多个元素,并返回新的长度
pop():用于删除并返回数组最后一个元素
shift():用于把数组的第一个元素删除,并返回第一个元素的值
unshift():可向数组的开头添加一个或多个元素,并返回新的长度
splice():向(从)数组中添加(删除)项目,返回被删除的项目
sort():用于对数组的元素进行排序
reverse():用于颠倒数组中元素的顺序
VUE之数组更新检测

  1. 新数组替换旧数组

filter():创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
concat():用于连接两个或多个数组
slice():可从已有的数组中返回选定的元素
filter
concat\slice

  1. 不能检测以下变动的数组

1.通过索引直接设置项:vm.items[index]=hahaha
解决方法:
Vue.set(item,index,newValue)
splice
2.修改数组长度:vm.items.length=1
解决方法:
vm.items.splice(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值