首先需要在keyup事件之后. 修饰符 来绑定事件


<body>
<div class="box">
<!-- 这里的 @keyup.enter="enterkeyup" enter是修饰符=回车 你也可以使用13 键盘码-->
<input v-on:click="enterkeyup" @keyup.13="enterkeyup" type="button" value="回车上传">
</div> <script>
var vm=new Vue({
el:'.box',
data:{},
methods:{
enterkeyup:function(){
alert('接收到了');
}
}
}); </script>
</body>

前提记住,  如果这个按钮 没有click事件,键盘事件是没有用的

 

键值修饰符

  在监听键盘事件时,我们经常需要检测常见键值,Vue  允许为V-on在监听键盘事件时添加关键

修饰符:   <input v-on:click.13=submit">

  记住所有的keycode比较困难,所以Vue为最常用的按键提供了别名

    .enter      回车

    .tab      制表符

    .delte      删除或退格

    .esc      退出

    .up       向上

  自定义键值修饰符:

  

  可以通过全局 config.keyCodes对象自定义键值修饰符别名:

    语法Vue.config.keyCodes.f1=112;

    后期就用@keyup.f1就可以了

    

自定义全局指令---获取焦点

  Vue中所有的命令,在调用的时候,都以v-开头的,v-focus  Vue是没有定义的  需要自己定义命令

  使用Vue-directive()定义全局的指令,注意directive  不带s  私有的才有s

  其中参数1:指令的名称,注意 在定义的时候,指令名称前面不需要加v-前缀,在调用的时候,必须在指令前缀上加上v-

  参数2:是一个对象,这个对象身上有一些指令相关的函数,这些函数可以在特定的阶段执行相关的操作。

    在参数2对象中还有 回调函数,其中回调函数也有参数

  

钩子函数 --也叫回调函数

一个指令定义对象可以提供如下几个钩子函数 (均为可选):

  • bind:只调用一次,指令第一次绑定到元素时调用。会立即执行。它没有真正的放到DOM中去,还在内存中。

  • inserted:被绑定元素插入DOM中 (仅保证父节点存在,但不一定已被插入文档中)。

  • update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

  • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

  • unbind:只调用一次,指令与元素解绑时调用。

 <script>
//自定义指令 focus获取焦点
Vue.directive('focus',{ bind:function(el){ //每当指令绑定到元素上的时候,会立即执行这bind函数,只执行一次
//注意:在每个函数中,第一个参数,永远是el 表示被绑定了指令的那个元素,这个el参数是一个原生js对象
//在元素刚绑定了指令的时候,还没有插入到DOM中去,这时候,调用focus方法没有用
//因为,一个元素,只有插入DOM之后,才能获取焦点
el.focus(); },
inserted:function(el){ //inserted 表示元素 插入到DOM中的时候,会被执行inserted函数 只执行一次
el.focus(); },
updated() { //当Vnode更新的时候会执行updated,可能会触发多次 }, });
var vm=new Vue({
el:'.box',
data:{ },
methods: { },
});
</script>

还可以给元素设置样式

  

    inserted:function(el){ //inserted 表示元素 插入到DOM中的时候,会被执行inserted函数  只执行一次
el.focus(); //这里面可以写jsDOm的操作 获取焦点
el.style.color='red'; },

    说明:自己理解

        需要操作DOM行为的  都在inserted中去执行

        操作样式之类的都在bind中去执行

接下来我们来看一下钩子函数的参数 (即 elbindingvnode 和 oldVnode)。

  

  

钩子函数参数

指令钩子函数会被传入以下参数:

  • el:指令所绑定的元素,可以用来直接操作 DOM 。
  • binding:一个对象,包含以下属性:
    • name:指令名,不包括 v- 前缀。
    • value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2
    • oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
    • expression:字符串形式的指令表达式。例如 v-my-directive="1 + 1" 中,表达式为 "1 + 1"
    • arg:传给指令的参数,可选。例如 v-my-directive:foo 中,参数为 "foo"
    • modifiers:一个包含修饰符的对象。例如:v-my-directive.foo.bar 中,修饰符对象为 { foo: true, bar: true }
  • vnode:Vue 编译生成的虚拟节点。移步 VNode API 来了解更多详情。
  • oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

除了 el 之外,其它参数都应该是只读的,切勿进行修改。如果需要在钩子之间共享数据,建议通过元素的 dataset 来进行。 

  

        //自定义指令
Vue.directive('color',{
bind:function(el,binding){
el.style.color='red';
console.log(binding.name); //返回color 获取当前自定义指令的名称
console.log(binding.value); //返回green 获取当前自定义指令 付给的值
console.log(binding.expression); // 返回 'green' 字符串形式返回
// 如果根据用户给定的参数设置颜色
el.style.color=binding.value; //绿色了 } });

  自定义私有指令

  

    <div class="box">

      <input type="text" v-fontweiht="'green'" v-on:keyup.f1="add"  name="" id="">
</div> <script> Vue.config.keyCodes.f1=112;
var vm=new Vue({
el:'.box',
data:{},
methods:{
add(){
alert('接收到了');
}
},
//定义私有指令跟全局写法是一样的
directives:{
'fontweiht':function(el,binding){
el.style.color=binding.value; } }
});

  

  

VUe键盘修饰符及自定义指令获取焦点的更多相关文章

  1. [Vue] : 键盘修饰符

    键盘修饰符以及自定义键盘修饰符 为文本框回车键绑定事件 <input type="text" class="form-control" v-model=& ...

  2. Vue学习笔记【13】——键盘修饰符以及自定义键盘修饰符

    1.x版本中自定义键盘修饰符[了解] Vue.directive('on').keyCodes.f2 = 113; 2.x版本中自定义键盘修饰符 通过Vue.config.keyCodes.名称 = ...

  3. 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  4. Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)

    目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...

  5. vue .sync 修饰符和自定义v-model的使用

    VUE 是单向数据流 当我们需要对一个 prop 进行"双向绑定"时 vue 修饰符.sync 子组件:this.$emit('update:visible', visible), ...

  6. vue键盘修饰符

    keyup事件 <input type='input' @keyup="keyEvent"> keyup.enter事件 <input type='input' ...

  7. vue--键盘修饰符以及自定义键盘修饰符

    键盘修饰符以及自定义键盘修饰符 1.vue键盘修饰符[了解即可] ​地址:https://cn.vuejs.org/v2/guide/events.html#%E6%8C%89%E9%94%AE%E4 ...

  8. 02-vue过滤器和键盘修饰符

    过滤器 概念:Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化.过滤器可以用在两个地方:mustache 插值和 v-bind 表达式.过滤器应该被添加在 JavaScript 表达式的 ...

  9. vue.js_06_vue.js的自定义指令和自定义键盘修饰符

    1.全局的自定义指令 实现:当页面刷新时,光标聚焦到搜索框中 <label> 搜索: <input type="text" class="form-co ...

随机推荐

  1. Day1作业2:多层菜单查询

    流程图: code: #!/usr/bin/env python # encoding: utf-8 # Auther:ccorz Mail:ccniubi@163.com Blog:http://w ...

  2. pca数学原理(转)

    PCA的数学原理 前言 数据的向量表示及降维问题 向量的表示及基变换 内积与投影 基 基变换的矩阵表示 协方差矩阵及优化目标 方差 协方差 协方差矩阵 协方差矩阵对角化 算法及实例 PCA算法 实例 ...

  3. CentOS8安装docker

    参考:https://www.cnblogs.com/ding2016/p/11592999.html 一,安装环境查看 二,下载docker-ce的repo curl https://downloa ...

  4. C# 代码自动生成工具

    开源:C# 代码自动生成工具,支持站点前后台   前言 写这个项目有很长一段时间了,期间也修修改改,写到最后,自己也没咋用(研究方向变化了). 正文 具体项目开源了:https://github.co ...

  5. FutureTask源码阅读

    FutureTask功能用法 类结构 源码中详细说明了FutureTask生命周期状态及变化 /** * The run state of this task, initially NEW. The ...

  6. 02 HTML

    1. HTML概念: HTML是最基础的网页开发语言 * Hyper Text Markup Language 超文本标记语言 * 超文本: * 超文本是用超链接的方法,将各种不同空间的文字信息组织在 ...

  7. 【坑】前端使用ajax异步请求以后,springMvc拦截器跳转页面无效

    文章目录 前言 `$.ajaxSetup( )` 后记 前言 本文着重解决前后端分离开发的页面调整问题. 笔者,在做一个需求,需要对访问网站,但是没有登录的用户进行拦截,将他们重定向到首页. 很简单的 ...

  8. Python24之递归和迭代

    一.递归的含义及一些用途 递归就是函数通过return语句实现自己调用自己的过程,基本上所有的程序语言都有递归算法,常有人说(’一般程序员使用迭代,天才程序员使用递归‘),汉诺塔游戏.谢尔宾斯基三角形 ...

  9. python 之 前端开发(盒子模型、页面布局、浮动、定位、z-index、overflow溢出)

    11.312 盒子模型 HTML文档中的每个元素都被比喻成矩形盒子, 盒子模型通过四个边界来描述:margin(外边距),border(边框),padding(内填充),content(内容区域),如 ...

  10. 从零开始学Flask框架-006

    重定向和用户会话 因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求.如果这个请求是一个包含表单数据的POST 请求,刷新页面后会再次提交表单. 基于这个原因,最好别让Web 程序把POST ...