vue中键盘事件和计算属性

键盘事件

  • vue中常用的按键别名

  • 回车=>enter

  • 删除=>delete(捕获的删除键和退格键)

  • 退出=> esc

  • 空格 => space

  • 换行 => tab(tab键要和keydown使用,不能与keyup使用,tab键有自身的功能故特殊)

  • 上 =>up

  • 下 => down

  • 左 => left

  • 右 => right

  • 另外的特殊的修饰键(ctrl、alt、shift、meta)

    keyup:按下修饰键的同时,按下其他键,释放其他键,事件才被触发

    keydown使用:正常触发事件

html 复制代码
<body>
    <div>
        //keyup.enter是按下回车在控制台才输出结果
        <input type="text" placeholder="按下回车提示输入" @keyup.enter="showInfo">
    </div>
</body>
<script>
    new Vue({
        el:'#root',
        data: {
            name: '时空'
        },
        methods: {
            showInfo(e) {
                //13是回车键的编码,e代表event
                //if(e.keyCode != 13)
                //return console.log(e.target.value)
                //查询按键的编码
                console.log(e.keyCode)
                //按下回车将输入框的数据进行输出
                console.log(e.target.value)  
            }
        }
    })
</script>

计算属性

  • computed计算属性和methods的区别

    计算属性在调用多个fullName时,get只执行一次,剩下的多次fullName是从缓存中获取

    methods调用一次,方法实现一次。没有缓存

  • 如果修改缓存中的值,但缓存仍在存在。也就是缓存中的值和想修改的值不一致。针对此类问题引出,get的调用时机,

    1.初读取fullName时,get被调用

    2.所依赖的数据发生改变,也就是firsName和lastName的值被修改

html 复制代码
<body>
    <div>
       姓: <input type="text" v-model="firsName"><br/>
       名:<input type="text" v-model="lastName"><br/>
       全名: <span>{{fullName}}</span>
       // <span>{{fullName}}</span>
       // <span>{{fullName}}</span>
       // <span>{{fullName}}</span>
    </div>
</body>
<script>
    const vm = new Vue({
        el: '#app',
        data:{
            firsName: '张',
            lastName: '三',
        },
        computed: {
            fullName: {
                 //当获取fullName时,在计算属性中访问data的firsName和lastName,get方法会被调用。fullName和data的属性都可以在vm中找到。故用this。获取firsName和lastName
              get(){
                 // console.log('get',this)
                  return this.firsName + '-' + this.lastName
              }
                //set方法当fullName被修改的时候被调用
              set(value){
                // console.log('set',value)
                //split方法把要修改的值,拆分成数组
                const arr = value.split('-')
                this.firName = arr[0]
                 this.lastName = arr[1]
                }
            }
        }
    })
</script>

计算属性的缩写

  • 只有当不需要set方法时,才能使用计算属性的缩写

```html
computed: {
          fullName: {
              get(){
                  return this.firsName + '-' + this.lastName
              }
        }
//演变一
computed: {
        //function(){}看成时get方法
         fullName: function(){
              return this.firsName + '-' + this.lastName
    }
}
//演变二
computed: {
        //这里不是函数模板的{{}}里面不能写fullNaLL()
        fullName(){
              return this.firsName + '-' + this.lastName
    }
}
```
相关推荐
乐闻x5 分钟前
最佳实践:如何在 Vue.js 项目中使用 Jest 进行单元测试
前端·vue.js·单元测试
遇到困难睡大觉哈哈16 分钟前
JavaScript面向对象
开发语言·javascript·ecmascript
檀越剑指大厂19 分钟前
【Python系列】异步 Web 服务器
服务器·前端·python
我是Superman丶21 分钟前
【前端】js vue 屏蔽BackSpace键删除键导致页面后退的方法
开发语言·前端·javascript
Hello Dam23 分钟前
基于 Spring Boot 实现图片的服务器本地存储及前端回显
服务器·前端·spring boot
小仓桑24 分钟前
利用 Vue 组合式 API 与 requestAnimationFrame 优化大量元素渲染
前端·javascript·vue.js
Hacker_xingchen25 分钟前
Web 学习笔记 - 网络安全
前端·笔记·学习
天海奈奈25 分钟前
前端应用界面的展示与优化(记录)
前端
多多*1 小时前
后端并发编程操作简述 Java高并发程序设计 六类并发容器 七种线程池 四种阻塞队列
java·开发语言·前端·数据结构·算法·状态模式
ᥬ 小月亮1 小时前
Layui表格的分页下拉框新增“全部”选项
android·javascript·layui