热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cssvue内联_Vue学习笔记(三)

1监听在Vue.js中可以通过watch来监听数据的变化,比如通过watch实现的简单计数器:计数器:{{c

1 监听

在Vue.js中可以通过watch来监听数据的变化,比如通过watch实现的简单计数器:

计数器:{{count}}



var vm = new Vue({el: '#app',data:{count:0}
})vm.$watch('count',function(newValue,oldValue)
{document.getElementById("info").innerHTML = "修改前:"+oldValue+"
修改后:"+newValue;
})

效果如下:

3b39b377f68a60942c75829435af1d7f.png

watch有两个参数,一个是要监听的变量,另一个是回调函数,回调函数接受两个参数,第一个参数是新值,第二个参数是旧值。

下面再来看一下有关单位换算的例子:

吨:千克:
吨:

千克:



var vm = new Vue({el: '#app',data:{ton:0,kilograms:0},watch:{ton:function(val){this.kilograms = (this.ton = val) * 1000;},kilograms:function(val){this.ton = (this.kilograms = val) / 1000;}}
})vm.$watch('ton',function(newValue,oldValue)
{document.getElementById("tonInfo").innerHTML = "修改前:"+oldValue+"
修改后:"+newValue;
})
vm.$watch('kilograms',function(newValue,oldValue)
{document.getElementById("kilogramsInfo").innerHTML = "修改前:"+oldValue+"
修改后:"+newValue;
})
5cb2a3adeba326ed6771c1d3cd5efdfd.png

2 样式绑定

classstyle是HTML元素的属性,用于设置元素的样式,可以利用v-bind来设置样式属性。v-bind在处理class以及style时专门增强了,表达式的结果类型除了是字符串外,还能是对象或者数组。

2.1 class绑定

可以为v-bind:class设置一个对象,从而动态切换class:




vm = new Vue({el: '#app',data:{isActive:true}
})

也可以传入多个属性来动态切换多个class:

.class0
{width:100px;height: 100px;
}
.class1
{background: green;
}
.class2
{background: red;
}



var vm = new Vue({el: '#app',data:{active1:true,active2:true}
})

效果:

491684057611ddaa6efd26a925d582e3.png

也可以利用对象进行简化:



var vm = new Vue({el: '#app',data:{classObject:{class1:true,class2:true}}
})

2.2 计算属性

v-bind:class中除了是一个对象还能绑定返回对象的计算属性,比如:



var vm = new Vue({el: '#app',data:{active1:true,error:{value:true,type:'fatal'}},computed:{classObject:function() {return {class0:true,class1: this.active1 && !this.error.value,class2: this.error.value && this.error.type === 'fatal'}}}
})

效果如下:

c32c69412a1310e0642f03d293d37c79.png

2.3 数组

也可以传递给v-bind:class一个数组,数组的元素为变量,变量的内容为对应的CSS类名:



var vm = new Vue({el: '#app',data: {active1:'class0',active2:'class1'}
})

也可以利用三元表达式来切换:


3 内联样式

可以在v-bind:style中直接设置样式(注意前后带{}):

测试


var vm = new Vue({el: '#app',data: {color:'#FF0000',fontSize:30}
})

当然也可以像绑定class一样直接绑定到一个对象上:

测试


var vm = new Vue({el: '#app',data: {styleObject: {color:'#FF0000',fontSize:'30px'}}
})

也可以使用数组进行绑定多个样式:

测试


var vm = new Vue({el: '#app',data: {styleObject1: {color:'#FF0000',},styleObject2:{fontSize:'30px'}}# 5
})

另外当v-bind:style需要特殊前缀的CSS时,比如transform,Vue会自动侦测并添加相应前缀。

4 事件处理

4.1 v-on

事件监听可以使用v-on:

这个按钮被点击了{{count}}次



var vm = new Vue({el: '#app',data: {count:0}
})
c5cbcd97b2c56117ba50de5084691b1f.png

通常来说单击按钮会触发一个方法调用,在methods中指定即可:



var vm = new Vue({el: '#app',methods:{test:function(){alert('Hello')//event表示是原生DOM事件if(event) {alert(event.target.tagName)}}}
})
145558b9b0fe3ced7db22d5050ad2ce1.png

当然也可以使用内联的JS语句:



var vm = new Vue({el: '#app',methods:{say:function(val){alert(val)}}
})

4.2 事件修饰符

Vue为v-on提供了事件修饰符来处理DOM事件细节,如event.preventDefault()event.stopPropagation(),通过.表示的指令调用修饰符:

  • .stop:阻止事件冒泡
  • .prevent:提交事件不再重载页面,如
  • .capture:事件捕获模式
  • .self:只当事件在该元素本身(而不是子元素)触发时回调
  • .once:事件只能点击一次

4.3 按键修饰符

Vue允许在v-on在监听键盘事件时添加按键修饰提示符:


keyCode值对应ASCII表,为了方便,Vue为常用的按键提供了别名:

  • .esc
  • .delete(删除+退格)
  • .enter/.space/.tab
  • .up/.down/.left/.right
  • .ctrl/.alt/.shift/.meta

当然也可以进行按键的组合,使用.连接即可。 例子如下:




var vm = new Vue({el: '#app',methods:{spacePressed:function(){document.getElementById("info").innerHTML = "您按下了空格";},ctrlCPressed:function(){document.getElementById("info").innerHTML = "您按下了Ctrl+C";}}
})



推荐阅读
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 本文整理了Java中org.apache.pig.backend.executionengine.ExecException.<init>()方法的一些代码 ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • 点击上方“新机器视觉”,选择加”星标”或“置顶”重磅干货,第一时间送达很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间。去年有过一段时间的集中学习,做 ... [详细]
author-avatar
jinyan胡_435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有