Vuejs——v-on

版权声明:出处http://blog.csdn.net/qq20004604

目录(?)[+]

资料来于官方文档:

http://cn.vuejs.org/guide/events.html

本文是在官方文档的基础上,更加细致的说明,代码更多更全。

简单来说,更适合新手阅读

 

 

(二十二)方法处理器

①v-on的标准用法

用于监听DOM事件,典型的就是v-on:click,处理的方法放在methods属性里

会默认传一个参数,代码如下:

  1. <button @click="test">点击</button>
  2. methods: {
  3. test: function (evt) {
  4. console.log(evt);
  5. }
  6. }

这里的evt,是标准的鼠标点击事件,类似jQuery的click事件的回调函数中的参数。

可以通过this来找到data属性里的值(或许也能找到其他几个),例如:

  1. data: {
  2. items: "test"
  3. },
  4. methods: {
  5. test: function (evt) {
  6. console.log(this.items);
  7. console.log(evt);
  8. }
  9. }

这里的this.items,就是data的items这个变量;

②内联语句处理器

给v-on事件传一个固定参数

  1. <button @click="test(‘a‘)">点击搜索age</button>

当这个时候,函数的第一个参数就不是鼠标点击事件了,而是字符串a

  1. test: function (mes) {
  2. console.log(mes);
  3. }

mes的值是’a’

$event

如果需要给他一个像上面一样的鼠标点击事件时,则使用$event作为参数(他和不传参数时的默认鼠标事件对象是相同的);

使用Vue实例的变量

如果需要传一个data属性里的值,则直接放属性名

例如:

  1. <div id="app">
  2. <a href="http://www.baidu.com" @click="test(items, $event)">点击搜索age</a>
  3. </div>
  4. <script>
  5. var test = {name: "test"};
  6. var vm = new Vue({
  7. el: ‘#app‘,
  8. data: {
  9. items: "test"
  10. },
  11. methods: {
  12. test: function (msg, evt) {
  13. console.log(msg);
  14. evt.preventDefault();//阻止默认动作,比如这里是页面跳转
  15. }
  16. }
  17. })
  18. </script>

输出:test和BUTTON

③事件修饰符(针对v-on)


修饰符


效果


备注


.prevent


阻止html元素的默认事件


类似evt.preventDefault()


.stop


阻止事件冒泡


keyup.数字


当该数字表示的按键弹起时


有别名


keyup.enter


回车


按下回车时


keyup.tab


Tab按钮


tab切入该input时


keyup.delete


del键


会导致原始的delete删除功能失效


keyup.esc


esc键


按下esc时


keyup.space


空格键


不会使空格功能失效(即按下空格时,既空格,又触发事件)


keyup.up


键盘方向键的上


上键同时会使光标到输入框的最左边

(焦点在输入框时才生效,按键弹起时生效,下同)


keyup.down


键盘方向键的下


到输入框的最后面


keyup.left


方向左键


光标左移


keyup.right


方向右键


光标右移


.self


当前元素本身(非子元素)时触发事件


类似冒泡的时候找最顶层,一般用于click之类的鼠标事件(1.0.16之后)


.capture


按照capture模式来处理


简单来说,根据我推测,是根据捕获顺序触发冒泡(原本模式是后捕获先冒泡,这个正好相反)(1.0.16之后)

对于.self来说,例如以下代码:

  1. <div id="app">
  2. <div @click.self="test" class="a">
  3. <div class="b">
  4. </div>
  5. </div>
  6. </div>
  7. <script>
  8. var test = {name: "test"};
  9. var vm = new Vue({
  10. el: ‘#app‘,
  11. data: {
  12. items: "test"
  13. },
  14. methods: {
  15. test: function (evt) {
  16. console.log(evt);
  17. }
  18. }
  19. })
  20. </script>

只有当点击到非div class=’b’的区域时,才会触发事件;

④自定义按键别名:

规范:

Vue.directive(“on”),keyCode.别名 = 按键码;

示例:

  1. Vue.directive("on").keyCode.z = 122;

这个指键盘码为122(小写z)的别名命名为z,当按键键盘的z键时(无论大小写),都会触发事件。

注意,这个要写在实例声明之后(推测是要含有该按键的template被创建后才有效)

时间: 2024-08-09 10:39:02

Vuejs——v-on的相关文章

vuejs学习笔记(1)--属性,事件绑定,ajax

属性 v-for 类似于angular中的 ng-repeat ,用于重复生成html片段: <ul id="box"> <li v-for="(v, i) in list">{{v}}</li> </ul> <script> var vm = new Vue({ el: '#box', // 对应的元素选择器 或者是 指向元素的变量 data: { // data list: [1,2,3] } });

vuejs点滴

1.vuejs简介    vue到底是什么? 一个mvvm框架(库).和angular类似  比较容易上手.小巧官网:http://cn.vuejs.org/  手册: http://cn.vuejs.org/api/ 2.vuejs与angular的区别. vue: 简单.易学,指令以 v-xxx,一片html代码配合上json,在new出来vue实例,个人维护项目  ,适合: 移动端项目,小巧 vue的发展势头很猛,github上start数量已经超越angular, angular: 指令

vuejs学习笔记(2)--属性,事件绑定,ajax

属性 v-for 类似于angular中的 ng-repeat ,用于重复生成html片段: <ul id="box"> <li v-for="(v, i) in list">{{v}}</li> </ul> <script> var vm = new Vue({ el: '#box', // 对应的元素选择器 或者是 指向元素的变量 data: { // data list: [1,2,3] } });

【vuejs小项目】一、脚手架搭建工作

一.关于vuejs 这是一个MVVM的前端开发框架,model(数据).viewmode(通讯).view(视图),它吸取了reactjs和angularjs的长处,核心重点在于组件化的设计原则. 我们都知道一个普通常见的页面,他会由header,body,footer,组成,里面再细分还有nav,list,slidebar等等,组件化就是将这些会重复用到的代码封装起来,在一个页面中需要用到的时候进行引入. 二.搭建脚手架(初始化项目) 做一个项目开始将一些文件环境搭建好,这里vue提供了vue

Vuejs使用笔记 --- component内部实现

现在来系统地学习一下Vue(参考vue.js官方文档): Vue.js是一个构建数据驱动的web界面的库,其目标是实现响应的数据绑定和组合的试图组件. Vue.js拥抱数据驱动的视图概念,这意味着我们能在普通的HTML模板中使用特殊的用法将DOM“绑定”到底层数据.一旦创建了绑定,DOM将于数据保持同步. 以下参考代码与上面的模型相对应 <!-- 这是我们的 View --> <div id="example-1"> Hello {{ name }}! <

vuejs从安装开始一起飞~

要写一个基于vuejs的项目,首先安装vue~这个可以在安装nodejs时一并安装 一.安装nodejs 1.去nodejs官网对应下载合适的nodejs,然后安装 2.在菜单栏搜索cmd,右键以管理员身份打开必须是管理员身份 3.输入  node -v    出现版本号说明nodejs安装成功 3.再输入   npm install vue  ,开始安装vue,结束后输入 npm -v,出现vue的版本号,则说明安装成功,否则安装失败! 4.安装失败的盆友需要  百度搜索npm淘宝镜像网站,使

Vuejs的一些总结

1.Vuejs组件 vuejs构建组件使用 1 Vue.component('componentName',{ /*component*/ }): 这里注意一点,组件要先注册再使用,也就是说: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Vue.component('mine',{ template:'#mineTpl', props:['name','title','city','content'] }); var v=new Vue({ el:'#vueInstance

VueJS 基础知识及项目总结

1.build :dev-server.js 是在使用终端命令时启动时执行的,里面可以修改端口号 (修改第16行即可) 2.index.html 是整个文件的入口 src 装的是你写入的文件3.main.js 是当前文件的主要的逻辑入口 APP.vue 是根组件 4.一些事件和方法 v-on:click="事件名" v-on:keyup="事件名" //在按下任意键时触发 v-on:keyup.enter="事件名" // 在按下enter 键时

vuejs基础入门之环境搭建

对于小白,对命令行工具使用得很少,而在学习vuejs框架时,命令行工具必不可少,因此,我对一些不懂安装vuejs环境的小白写如下教程: 1.vuejs是前端框架,环境借助于nodo.js,因此,我们先要安装node.js的环境. 2.百度{node.js},下载最新版本的nodejs环境,安装完毕打开如下命令行的: 说明一点:如果我们直接在cmd使用npm安装vue工具时会很慢,所以推荐使用淘宝的npm镜像. 3.打开了以上命令行,输入:npm install -g cnpm -registry

VueJS入门学习(一)

刚刚接触VueJs的时候,还不懂NodeJs是什么,单页面应用是什么?随着慢慢的深入慢慢的理解了这些东西.简单介绍一些VueJs,一个页面一个Vue实例,包含了页面中控件所需要的方法,事件,参数等等.先上一个例子. <div id="app"> {{ message }} </div> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) el绑定的是你Vue所作用的大范围标签的ID