您的位置:首页 > 产品设计 > UI/UE

Vue学习之路---No.5(分享心得,欢迎批评指正)

2017-03-15 00:44 686 查看
同样,首先我们还是回顾一下昨天讲到的东西:

1.常用的Vue修饰器

2.当利用js方法不修改数据,但也可以改变视图时,我们需要整体返回再整体接收

(如: items.example1 = items.example1.filter(function(){}))

3.当我们不能直接对数组进行修改的时候,我们通常要么利用vue内置set(),要么利用整体接收来修改

4.对数组中的数据进行过滤和排序,可以用computed也可以用methods

下面我们开始今天的内容:::

事件和事件的方法:

<div id = example2>
<button v-on:click="greet">greet</botton>
</div>

var example-2 = new Vue({
el: ' #example ',
data : {
admin : ' vue.js '
}

method : {
greet : function ( event ){

alert ( ' Hello ' + this.name + ' ! ' )
//this在这里值vm对象
alert(' event.target.tagName ')
//event在这里指js原生对象
}
}
})
//这个方法可以在外部用javascript:;的方法调用
example2.greet() // -> " hello vue.js "

同时,我们也可以直接写表达式处理

<div id = " example-2 ">
<button v-on:click = "contain + = 1 ">add 1</button>
<p>{{ contain }}</p>
</div>

el:' #example-2 ',
data : {
contain : .0
}

也可以用传参的方法来处理

<div id = "example-2">
<button v-on:click= " look( 'beauti girl' ) "></button>
<button v-on:click= " look ( ' sex girl ' ) "></button>
</div>

var example2 = new Vue({
el: ' #example2 ',
data{ }
methods : {
look function ( message ){
alert( message )
}
}
})

我们可以总结一下,就是,如果 v-on:click=""后面跟的方法名如果带括号,那它就是js表达式

如果不带括号,那它就是vue方法名,从我们第一个例子可以看到,当后面跟的东西没带括号的时候

会有一个event,这是vue内置的默认event,就算它没有传入什么值

但是如果是这种情况,也就是带括号的情况,如果括号里没有参数,那么也就获取不到event,如下:
<button v-on:click=" dream( 'I just wanna to run ', $event )"> dream </button>

methods : {
dream : function( message , event ){
if ( event ) {
event.preventDefault()
alert ( message )
}
}
}

这里就需要传参才可以~

下面我们讲一下事件修饰器:::

// 阻止点击事件的冒泡行为
<a v-on:click.stop="doThis"></a>
// 阻止默认的表单提交
<form v-on:submit.prevent="onSubmit"></form>
// 事件修饰器可以连用
<a v-on:click.stop.prevent="doThat">
// 只需要修饰器,而无需处理方法
<form v-on:submit.prevent></form>
// 使用 capture 模式
<div v-on:click.capture="doThis">...</div>
// 仅当event.target是自身的时候才执行
// 比如,这样写了之后点击子元素就不会执行后续逻辑
<div v-on:click.self="doThat">...</div>

今天的内容稍稍有点少~~打了个电话有点久~~~请朋友们见谅;之后尽量早点开始总结输出~~明天见,goodnight~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: