Vue学习之按键修饰符

Vue学习之按键修饰符Vue学习之按键修饰符

大家好,又见面了,我是你们的朋友全栈君。

Vue按键修饰符

1.准备页面

沿用前面案例的页面

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
    <link rel="stylesheet" href="./lib/bootstrap-3.3.7.css">
</head>
<body>
    <div id="app">
        
        
        <div class="panel panel-primary">
              <div class="panel-heading">
                    <h3 class="panel-title">品牌管理</h3>
              </div>
              <div class="panel-body form-inline">
                    <label>
                    Id:
                    <input type="text" class="form-control" v-model="id" >
                    </label>
            
                    <label>
                    Name:
                    <input type="text" class="form-control" v-model="name" >
                    </label>
            
                    
                    <input type="button" value="添加" 
                        class="btn btn-primary" @click='add'>

                    <label>
                        搜索名称关键字:
                        <input type="text" class="form-control" v-model="keywords">
                    </label>    
              </div>
        </div>
        
        
        
        <table class="table table-bordered table-hover table-striped">
            <thead>
                <tr>
                    <th>id</th>
                    <th>name</th>
                    <th>cTime</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="item in search(keywords)" :key="item.id">
                    <td>{
  
  {item.id}}</td>
                    <td>{
  
  {item.name}}</td>
                    <td>{
  
  {item.ctime | msgDateFormat('yyyy-mm-dd hh-mi-ss') }}</td>
                    <td><a href="" @click.prevent="del(item.id)">删除</a></td>
                </tr>
            </tbody>
        </table>
        
        
        
    </div>
    <script>
       
        var vm = new Vue({
            el: "#app",
            data: {
                id:'',
                name:'',
                keywords:'',
                list:[
                    {id:1,name:'奔驰',ctime:new Date()},
                    {id:2,name:'宝马',ctime:new Date()}
                ]
            },
            methods: {
                add(){
                    // 添加记录到list中
                    this.list.push({id:this.id,name:this.name,ctime:new Date()})
                    // 将输入框置空
                    this.id=this.name=''
                },
                del(id){
                    // some方法循环数组,返回true可以终止循环
                    // this.list.some((item,i) =>{
                     //   if(item.id == id){
                            // 移除记录 1 移除一条记录
                     //       this.list.splice(i,1);
                            // 返回true 终止循环
                      //      return true;
                      //  }
                    //}) 
                    // 通过findIndex方法获取要删除记录的index
                    var index = this.list.findIndex(item => {
                        if(item.id == id){
                            return true
                        }
                    })
                    // 通过splice方法来移除记录
                    this.list.splice(index,1);
                },
                search(keywords){
                    // 保存新的数组
                   // var newList = []
                   // this.list.forEach(item => {
                        // 判断循环的记录是否包含的查询的关键字
                       // if(item.name.indexOf(keywords) != -1){
                            // 将循环的记录添加到新的数组中
                         //   newList.push(item)
                      //  }
                  //  })
                    // 返回数组信息
                   // return newList
                  // filter 过滤  返回满足条件的数组
                  return  this.list.filter(item => {
                       // includes 是否包含
                       if(item.name.includes(keywords)){
                            return item
                       }
                   })
                }
            },
            filters:{ // 通过局部过滤器来实现
                msgDateFormat:function(msg,pattern=''){
                    // 将字符串转换为Date类型
                    var mt = new Date(msg)
                    // 获取年份
                    var y = mt.getFullYear()
                    // 获取月份 从0开始 
                    var m = (mt.getMonth()+1).toString().padStart(2,"0")
                    // 获取天数
                    var d = mt.getDate();
                    if(pattern === 'yyyy-mm-dd'){
                        return y+"-"+m+"-"+d
                    }
                    // 获取小时
                    var h = mt.getHours().toString().padStart(2,"0")
                    // 获取分钟
                    var mi = mt.getMinutes().toString().padStart(2,"0")
                    // 获取秒
                    var s = mt.getSeconds().toString().padStart(2,"0")
                    // 拼接为我们需要的各式
                    return y+"-"+m+"-"+d+" "+h+":"+mi+":"+s
                }
            }
        })
    </script>
</body>
</html>

2.keyup处理

我们希望当’品牌名称’输入完成后自动的调用”add”方法完成添加操作,这时我们可以给输入框绑定一个 键盘松开的事件”keyup”

在这里插入图片描述

效果

在这里插入图片描述

通过效果我们发现虽然效果实现了,但是并不是我们所希望的,这时我们可以添加对应的按键修饰符来处理。

3.系统修饰键

系统本身给我们提供的有几个修饰键,我们先来使用下(https://cn.vuejs.org/v2/guide/events.html)。

在这里插入图片描述

比如: enter键

在这里插入图片描述

效果

在这里插入图片描述

回车效果不好演示,自行脑补哦

4.自定义修饰键

系统提供的修饰键,就那么几个,这时如果我们想要自定义的话第一种方式就是使用按键对应的值来处理(https://dpb-bobokaoya-sm.blog.csdn.net/article/details/96280857)

在这里插入图片描述

比如我们要使用”F2″来实现 松开”F2″来添加数据的效果,可以如下实现

在这里插入图片描述

在这里插入图片描述

效果实现,但是 @keyup.113=”add”这种用具体值表示的方式并不是太容易记住,这时我们可以定义一个全局的按键修饰符,如下

在这里插入图片描述

使用自定义的按键修饰符

在这里插入图片描述

效果
在这里插入图片描述

搞定~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106496.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 吞噬星空是鸿蒙三部曲吗,星辰变吞噬星空盘龙三部有什么关系

    吞噬星空是鸿蒙三部曲吗,星辰变吞噬星空盘龙三部有什么关系三部小说之间的关系就说这三部小说都属于鸿蒙三部曲,其中的各个宇宙之间都有一定的联系。《星辰变》是在红袖网上连载的奇幻修真小说,作者是我吃西红柿。小说以一个庞大的修真世界为背景,讲述了主角秦羽不甘于没落、努力修炼跨越先天不足的劣势,一步步踏上强者之路,最终成为鸿蒙掌控者的故事。《吞噬星空》,是一部东方科幻类型的网络小说,小说签约授权首发连载于红袖网。小说已经完本,作者是我吃西红柿。小说主要讲述了地球…

    2022年6月16日
    119
  • idea 2021 激活码 3月最新注册码

    idea 2021 激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    40
  • 【哈佛幸福课笔记】【1】

    【哈佛幸福课笔记】【1】【哈佛幸福课笔记】【1】​​ 一个月的时间看完了哈佛幸福课,正如Tal所说课程的结束才是学习的开始。对于课程观点的思考,对于个人习惯的培养,对于思维模式的转变还需要花大量的时间去练习。这个系列的帖子将作为我个人的读书笔记,也欢迎机缘巧合点开这个帖子的网友一起讨论。(第一章思维导图)​ 课程在讲述的时候有时候并不是线性完整的逻辑,一个观点有时尚没讲完会进入到新的观点中,这样课程显得不是那么的死板不是单纯的说教而是有趣的互动和对实验数据的分析。课程整体的结构十分清晰,可以说干货很多。1.关于内部

    2022年7月25日
    4
  • idea2021.11激活[最新免费获取]

    (idea2021.11激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~6EK6WKOHUX-eyJsaWNlbnNlSWQiOi…

    2022年3月28日
    49
  • Web Service进阶(一)运行原理[通俗易懂]

    Web Service进阶(一)运行原理[通俗易懂]利用清明小假期,温习了一遍WebService的相关内容,对其工作原理进行了简要总结。以供有需求的朋友和自己日后参考。文章若有不当之处,敬请朋友们提出宝贵建议,以求共勉。Web服务中,我们应该首先了解相关的术语含义:WSDL、UDDI….相关术语方面的介绍在此不再赘述,重点放在原理上。在Web服务中,存在三个角色:服务提供者、服务请求者和服务中介,三者之间的关系如图1…

    2022年7月24日
    11
  • vmware15最新激活码_通用破解码

    vmware15最新激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    135

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号