事件缩写

v-on:click=

简写方式 @click=

事件对象$event

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>事件简写和事件对象$event</title>
  6. <script src="js/vue.js"></script>
  7. <script>
  8. window.onload=function(){
  9. let vm=new Vue({
  10. el:'#itany',
  11. methods:{
  12. show(){
  13. console.log(111);
  14. },
  15. print(e){
  16. // console.log(e);
  17. console.log(e.target.innerHTML); //DOM对象
  18. console.log(this);
  19. }
  20. }
  21. });
  22. }
  23. </script>
  24. </head>
  25. <body>
  26. <div id="itany">
  27. <button v-on:click="show">点我</button>
  28. <button @click="show">点我</button>
  29. <hr>
  30. <button @click="print($event)">Click Me</button>
  31. </div>
  32. </body>
  33. </html>

事件冒泡

阻止事件冒泡:

a)原生js方式,依赖于事件对象

b)vue方式,不依赖于事件对象

@click.stop

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>事件冒泡和默认行为</title>
  6. <script src="js/vue.js"></script>
  7. <script>
  8. window.onload=function(){
  9. let vm=new Vue({
  10. el:'#itany',
  11. methods:{
  12. show(){
  13. console.log(111);
  14. // e.stopPropagation();
  15. },
  16. print(){
  17. console.log(222);
  18. },
  19. write(){
  20. console.log(333);
  21. },
  22. study(){
  23. console.log(444);
  24. // e.preventDefault();
  25. }
  26. }
  27. });
  28. }
  29. </script>
  30. </head>
  31. <body>
  32. <div id="itany">
  33. <div @click="write">
  34. <p @click="print">
  35. <!-- <button @click="show($event)">点我</button> -->
  36. <button @click.stop="show">点我</button>
  37. </p>
  38. </div>
  39. <hr>
  40. <!-- <a href="#" @click="study($event)">俺是链接</a> -->
  41. <a href="#" @click.prevent="study">俺是链接</a>
  42. </div>
  43. </body>
  44. </html>

Tips: 由内到外依次执行 print,write,itany被称为"事件冒泡",只执行print不执行write和itany, @click.stop

事件默认行为

阻止默认行为:

a)原生js方式,依赖于事件对象

  1. <a href="#" @click.prevent="study">俺是链接</a>

比如网址是 www.baidu.com,点击上面的链接会跳转到 www.baidu.com#,

阻止默认行为 @click.prevent

键盘事件

回车:@keydown.13 或@keydown.enter

上:@keydown.38 或@keydown.up

默认没有@keydown.a/b/c...事件,可以自定义键盘事件,也称为自定义键码或自定义键位别名

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>键盘事件</title>
  6. <script src="js/vue.js"></script>
  7. <script>
  8. /**
  9. * 自定义键位别名
  10. */
  11. Vue.config.keyCodes={
  12. a:65,
  13. f1:112
  14. }
  15. window.onload=function(){
  16. let vm=new Vue({
  17. el:'#itany',
  18. methods:{
  19. show(e){
  20. console.log(e.keyCode);
  21. if(e.keyCode==13){
  22. console.log('您按了回车');
  23. }
  24. },
  25. print(){
  26. // console.log('您按了回车');
  27. // console.log('您按了方向键上');
  28. console.log('11111');
  29. }
  30. }
  31. });
  32. }
  33. </script>
  34. </head>
  35. <body>
  36. <div id="itany">
  37. <!-- 键盘事件:@keydown、@keypress、@keyup -->
  38. <!-- 用户名:<input type="text" @keydown="show($event)"> -->
  39. <!-- 简化按键的判断 -->
  40. <!-- 用户名:<input type="text" @keydown="show($event)"> -->
  41. <!-- 用户名:<input type="text" @keydown.13="print"> -->
  42. <!-- 用户名:<input type="text" @keydown.enter="print"> -->
  43. <!-- 用户名:<input type="text" @keydown.up="print"> -->
  44. 用户名:<input type="text" @keydown.f1="print">
  45. <!-- 事件修饰符 -->
  46. <button @click.once="print">只触发一次</button>
  47. </div>
  48. </body>
  49. </html>

事件修饰符

  1. .stop - 调用 event.stopPropagation()。
  2. .prevent - 调用 event.preventDefault()。
  3. .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
  4. .native - 监听组件根元素的原生事件。 某个组件的根元素上绑定 .native修饰符,使组件变成普通的HTML
  5. .once - 只触发一次回调。

属性绑定和属性的简写

v-bind 用于属性绑定, v-bind:属性=""

属性的简写:

v-bind:src="" 简写为 :src=""

class和style属性

绑定class和style属性时语法比较复杂:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>class和style属性</title>
  6. <script src="js/vue.js"></script>
  7. <script>
  8. window.onload=function(){
  9. let vm=new Vue({
  10. el:'#itany',
  11. data:{
  12. bb:'aa',
  13. dd:'cc',
  14. flag:true,
  15. num:-2,
  16. hello:{aa:true,cc:true},
  17. xx:{color:'blue',fontSize:'30px'},
  18. yy:{backgroundColor:'#ff7300'}
  19. }
  20. });
  21. }
  22. </script>
  23. <style>
  24. .aa{
  25. color:red;
  26. font-size:20px;
  27. }
  28. .cc{
  29. background-color:#ccc;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div id="itany">
  35. <!--
  36. class属性
  37. -->
  38. <!-- <p class="aa">南京网博</p> --> <!-- 可以访问,普通css方式 -->
  39. <!-- <p :class="aa">南京网博</p> --> <!-- 不可以,Vue的属性绑定时不能直接css样式 -->
  40. <!-- 方式1:变量形式 -->
  41. <!-- <p :class="bb">南京网博</p> -->
  42. <!-- 方式2:数组形式,同时引用多个 -->
  43. <!-- <p :class="[bb,dd]">南京网博</p> -->
  44. <!-- 方式3:json形式,常用!!! -->
  45. <!-- <p :class="{aa:true,cc:flag}">南京网博</p> -->
  46. <!-- <p :class="{aa:num>0}">南京网博</p> -->
  47. <!-- 方式4:变量引用json形式 -->
  48. <!-- <p :class="hello">南京网博</p> -->
  49. <!--
  50. style属性
  51. -->
  52. <p :style="[xx,yy]">itany</p>
  53. </div>
  54. </body>
  55. </html>

数据绑定的方式

a.双向绑定

v-model

b.单向绑定

方式1:使用两对大括号{{}},可能会出现闪烁的问题,可以使用v-cloak解决

方式2:使用v-text、v-html


  1. <style>
  2. /* 必须配置css样式,否则不生效 */
  3. [v-cloak]{
  4. display:none;
  5. }
  6. </style>
  7. <h3>aaa<span v-cloak>{{msg}}</span></h3>

其他指令

v-once 数据只绑定一次

v-pre 不编译,直接原样显示

vue之常用指令的更多相关文章

  1. 02: vue.js常用指令

    目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...

  2. Vue - vue.js 常用指令

    Vue - vue.js 常用指令 目录: 一. vuejs模板语法之常用指令 1. 常用指令: v-html 2. 常用指令: v-text 3. 常用指令: v-for 4. 常用指令: v-if ...

  3. vue.js常用指令

    本文摘自:http://www.cnblogs.com/rik28/p/6024425.html Vue.js的常用指令 上面用到的v-model是Vue.js常用的一个指令,那么指令是什么呢? Vu ...

  4. 【Vue】vue.js常用指令

    http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会 ...

  5. 新人成长之入门Vue.js常用指令介绍(一)

    写在前面 作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的 ...

  6. Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on

    Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTML特性(attribu ...

  7. vue入门-常用指令操作

    指令:v-xx组成的特殊指令,如果一个标签中有指令会默认替换原有的书 v-model:实现数据和视图的双向绑定 v-text:在元素中插入值 v-html:在元素中插入标签或者插入文本 v-if:根据 ...

  8. vue的常用指令

    https://www.bootcdn.cn/ 前端资源库 <!-- 常用内置指令 v:text : 更新元素的 textContent v-html : 更新元素的 innerHTML v-i ...

  9. Vue.js常用指令总结

    有时候指令太多会造成记错.记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错. 本文主要讲了一下六个指令: v-if//v-show//v-else//v-for//v-bind ...

随机推荐

  1. EF数据库优先模式(三)

    今天2018年4月1日,呼叫王伟,81192,收到请返航! 接上次说,本节将LINQ以及lambda表达式 LINQ是C#里面针对SQL Server特有的数据访问操作方法,通俗一点说就是类似于写SQ ...

  2. c++类内存分布解析

    首先使用Visual Studio工具查看类的内存分布,如下: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类的内 ...

  3. php扩展php-redis安装与使用

    一.redis的安装 1,安装redis版本 下载页面:https://redis.io/download 安装一个老版本3.2.11:http://download.redis.io/release ...

  4. mysql时间与字符串之间相互转换

    1.时间转字符串 DATE_FORMAT(日期,格式字符串) SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); 2.字符串转时间 STR_TO_DATE( ...

  5. CSS笔记——属性选择器

    1.存在和值(Presence and value)属性选择器这些属性选择器尝试匹配精确的属性值:[attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何.[attr=val ...

  6. js-权威指南学习笔记19

    第十九章 jQuery类库 1.传递HTML文本字符串给$()方法,jQuery会根据传入的文本创建好HTML元素并封装为jQuery对象返回. 2.想要遍历jQuery对象中的所有元素时,可以调用e ...

  7. 【代码笔记】iOS-Label随字自动变大

    一,效果图. 二,工程图. 三, 代码. RootViewController.h #import <UIKit/UIKit.h> //添加HPGrowingTextView头文件 #im ...

  8. Chrome Extension 实战

    想起个问题,线上项目js要有bug,怎么进行调试修改. ------------- 想起来,方法应该是,拦截线上的js的请求,转到本地代码上进行调试... ------------- 网上看到 Chr ...

  9. 搭建ReactNative时的最普遍的错误—— ":CFBundleIdentifier", Does Not Exist

    报错 ":CFBundleIdentifier", Does Not Exist 今天搭建Reactnative 报错 注意当你第一次搭建RN时,包体下载的都是最新的版本,由于现在 ...

  10. JMeter初体验

    Meter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能. 1.JMeter下载和安装 JMeter可以在JMeter的官方网站下载,目前能下载的是JMete ...