vue的一些细节

 

 

注意区别

//鼠标滚轮事件
@wheel = "demo"

demo()

注意执行顺序,用户滚动鼠标滚轮,触发事件执行demo()函数,函数执行完毕后,页面滚动条滚动
所以,当demo()函数操作量很大时,就会出现页面卡顿,滚动条不移动的问题

解决方法:passive事件修饰符:可以让事件默认行为立即执行,无需等待回调函数完毕
//滚动条事件 @scroll
滚动条则先执行滚动再执行回调

 

键盘事件

//keydown

//keyup

两者区别在于,前者按下键盘按键后就触发事件,后者按下再松开后触发事件

 

取得触发事件元素对象的值

event.target.value

 

vue对于常用按键的别名//在按键事件后添加别名

@keyup.enter/tab/ = "showname()"

对于其余按键,则可以用对应按键编码操作
keycode 例如 Enter == 13


//输出按键名/按键编码
console.log(e.key,e.keycode);

//对于组合单词按键
要用-分隔单词

 

 

vue默认data:{} 中的key都是data的属性,计算属性computed同理

 

 

计算属性

//计算属性的属性Key也会被挂载到vue实例上,和data类似有数据代理
computed : {
 fullname:{
  //将需求的属性写成对象,用get()  ,set() 定义它的读写
  //get被调用的时机? 1.初次读取对应值时(初始化) 2.所依赖的数据发生变化时
  //计算属性会使用缓存,数据不发生变化时就只会调用一次,相比于methods节约了内存  
    get(){
    console.log("get被调用了");
    return "小猪佩奇"
  // vue中get()的this指向是当前的vm实例,所以可以用this.属性来直接调用data中的数据    
      }  
    }
}

 

区别 v-html 和 v-text 指令

(1)应用区别

1 <div v-html = 'str'><div>
2 // v-html能够识别HTML标签,显示值
3 <div v-text = 'str'><div>
4 //v-text不区分变量中包含的HTML标签,不会显示
5 
6 data:{
7    name:'安全性问题',
8    str:'<h1>变量的值包含HTML标签结构</h1>'
9 }

(2)安全性问题

v-html可能会导致xss攻击,盗取用户数据(cookie)

 

props/data/computed/methods 的属性不能有重名,因为都会挂载到实例上

 

只添加一次新属性的写法

 

posted @ 2021-12-23 12:03  嗜血汽车人  阅读(46)  评论(0)    收藏  举报