说说 Vue.js 的指令与事件

作者 : 开心源码 本文共1826个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共183人阅读

指令(Directives)带有前缀 v- ,比方 v-if、v-html、v-pre 等。指令的作用是当表达式的值改变时,相应地将某些行为应用到 DOM 上,我们以 v-if 为例:

html:

<div id="app">    <p v-if="show">显示</p></div>

js:

<script>    var app=new Vue({       el:'#app',       data:{           show:true       }    });</script>

这个例子中,当数据 show 的值为 true 时,会插入 p 元素,当为 false 时,则会被移除。

Vue.js 的核心理念是数据驱动 DOM,所以我们只要维护好数据,剩下的事交给 Vue 就好啦O(∩_∩)O~

1 v-bind

v-bind 会动态升级 HTML 元素上的属性。

html:

<div id="app2">    <a v-bind:href="url">人工智能画作拍卖 作品签名是数学方程式</a><p></p>    <img v-bind:src="imgUrl" width="50%" height="50%"></div>

js:

var app2=new Vue({    el:'#app2',    data:{        url:'http://news.163.com/photoview/00AO0001/2297321.html#p=DV5FFQOV00AO0001NOS',        imgUrl:'http://pic-bucket.nosdn.127.net/photo/0001/2018-10-27/DV5FFQOV00AO0001NOS.jpg'    }});

效果:

示例中的链接与图片的地址都做了数据绑定,当我们通过各种方式改变数据时,链接和图片都会自动升级。

2 v-on

v-on 用于绑定事件监听器。

html:

<div id="app3">    <p v-if="show">显示</p>    <button v-on:click="hide">点击隐藏</button></div>

js:

var app3 = new Vue({    el: '#app3',    data: {        show: true    },    methods: {        hide: function () {            this.show = false;        }    }});

效果:

在 button 按钮上,使用 v-on:click 给该元素绑定了一个点击事件。

在普通元素上,v-on 可以监听原生的 DOM 事件,除了 click 外,还有 dblclick、keyup、mousemove 等。表达式可以是一个方法名,这些方法都写在 Vue 实例的 methods 属性内,并且是函数的形式,函数内的 this 指向的是当前 Vue 实例本身,因而可以直接使用 this.xxx 的形式来访问或者修改数据。

表达式也可以是一个内联语句:

html:

<div id="app4">    <p v-if="show">显示</p>    <button v-on:click="show=false">点击隐藏</button></div>

js:

var app4 = new Vue({    el: '#app4',    data: {        show: true    }});

效果与上例相同。

假如要绑定的事件必需解决复杂的业务逻辑,那么建议在 methods 里公告方法来实现,由于这样可读性更好也方便维护。

3 调用 methods 中定义的方法

Vue.js 代理商了 methods 中定义的方法,所以我们可以像访问 Vue 数据那样来调用方法。

js:

var app5 = new Vue({    el: '#app5',    data: {    },    methods:{        init:function (val) {            console.log(val);        }    },    mounted:function () {        this.init('初始化操作');    }});app5.init("初始化页面");

效果:

4 指令缩写

指令缩写也称为语法糖,它指的是:在不影响功能的前提下,增加某种方法实现同样的效果,从而方便程序开发。

v-bind 和 v-on 指令都提供了缩写。

指令缩写
v-bind:
v-on@

比方之前的例子可以缩写为:

html:

<div id="app2">    <a :href="url">人工智能画作拍卖 作品签名是数学方程式</a>    <p></p>    <img :src="imgUrl" width="50%" height="50%"></div><div id="app3">    <p v-if="show">显示</p>    <button @click="hide">点击隐藏</button></div>

建议使用缩写形式,这样代码更简洁哦O(∩_∩)O~

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 说说 Vue.js 的指令与事件

发表回复