Vue v-on标签的使用

1.v-on标签主要是用于监听客户端的事件,比如鼠标点击,键盘按下抬起等等。
2.v-on绑定点击事件例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <h2>当前数:{{counter}}</h2><br>
<!--    <button v-on:click="counter++">加一</button>-->
<!--    <button v-on:click="counter&#45;&#45;">减一</button>-->
    <!--v-on标签的语法糖,用@代替v-on,@click-->
    <button @click="counter++">加一</button>
    <button @click="counter--">减一</button>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
                counter: 0
            }

        })
</script>
</body>
</html>

3.结果
在这里插入图片描述
4.v-on参数的问题
1)调用的方法没有参数时,可以写成@click="addOne"或者@click=“addOne()”,注意,如果addOne方法里有一个参数,即addOne(event),我们没有传参数时其会默认将原生的event对象传递过去
2)当我们想同时传自己的参数以及event对象时,可以通过$event来传递
例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <h2>当前数:{{counter}}</h2><br>
    <button @click="addOne">加1</button>
    <button @click="addOne()">加1</button>
    <button @click="addFive(5)">加5</button>
    <button @click="addTen(10,$event)">加10</button>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
                counter: 0
            },
            methods: {
                addOne(event) {
                    console.log(event)
                    this.counter++
                },
                addFive(num) {
                    this.counter = this.counter + num
                },
                addTen(num,event) {
                   console.log(event)
                   this.counter = this.counter + 10
                }
            }

        })
</script>
</body>
</html>

结果,可以看到点击这两个按钮的地方,控制台均打印了原生的event对象
在这里插入图片描述
5.v-on修饰符
1).stop,调用了event.stopPropagation(),阻止冒泡行为

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <h2>button数:{{bcounter}}</h2>
    <h2>div数:{{dcounter}}</h2>
    <div @click="dcounter++" style="height: 200px;width: 200px;background-color: red">
    <button @click.stop="bcounter++">点我加1</button>
    </div>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
                bcounter: 0,
                dcounter: 0
            },

        })
</script>
</body>
</html>

结果,冒泡行为已停止
在这里插入图片描述2).prevent,阻止默认行为,调用了event.preventDefault()
例子,阻止表单提交

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <form @submit.prevent action="">
        用户名:<input type="text" name="username" value=""/><br>
        密码:<input type="password" name="password" value=""/><br>
        <button type="submit">登陆</button>
    </form>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
            },

        })
</script>
</body>
</html>

没有阻止之前,登陆
在这里插入图片描述

阻止默认行为后,登陆
在这里插入图片描述
3).once,只触发一次回调
例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <button @click.once="btnClick">点我</button>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
            },
            methods: {
                btnClick() {
                    console.log('按钮事件。。。')
                }
            }
        })
</script>
</body>
</html>

结果,只执行一次
在这里插入图片描述
4)键修饰符,用于监听键盘
如下为监听回车键抬起和A键抬起例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="content">
    <input @keyup.enter="enterFun" type="text"/><br>
    <input @keyup.A="oneFun" type="text"/>
</div>
<script src="./vue.js"></script>
<script>
        const content = new Vue({
            el: '#content',
            data: {
            },
            methods: {
                enterFun() {
                    console.log('enter事件触发')
                },
                oneFun() {
                    console.log('one事件触发')
                }
            }
        })
</script>
</body>
</html>

结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: vue-konva是一个基于Vue.js的Konva库的封装,它提供了一系列的Vue组件,能够轻松地在Vue应用中创建和操作Konva舞台和图形。 v-rect是vue-konva中的一个矩形组件。通过使用v-rect组件,我们可以在Konva舞台上创建一个矩形,并设置其属性和事件。 首先,我们需要在Vue组件中引入v-rect组件。在template中,使用<template v-rect>标签来创建一个矩形。我们使用v-bind指令来设置矩形的属性,例如宽度、高度、位置等等。同时,我们也可以使用v-on指令来监听矩形的事件,例如点击、拖动等等。 v-rect的属性有很多,其中一些常用的属性包括width(宽度)、height(高度)、x(x坐标)、y(y坐标)、fill(填充颜色)、stroke(边框颜色)等等。我们可以根据需求来设置这些属性的值。例如,设置矩形的宽度为100px,高度为50px,填充颜色为红色,可以这样写:<template v-rect:width="100" v-rect:height="50" v-rect:fill="red"> 同时,v-rect也支持一些事件,如点击事件(click)、拖动事件(dragstart、dragmove、dragend)等等。我们可以使用v-on指令来监听这些事件,然后在Vue组件中定义相应的方法来处理这些事件。例如,监听矩形的点击事件,可以这样写:<template v-rect v-on:click="handleClick">,然后在Vue组件中定义handleClick方法来处理点击事件。 综上所述,v-rect是vue-konva中一个非常有用的组件,可以轻松地创建、设置和操作Konva舞台上的矩形。通过设置属性和监听事件,我们可以根据需求来定制矩形的外观和行为。 ### 回答2: Vue-Konva 是一个基于 Vue.js 的 Konva Canvas 库,用于创建可交互的图形和动画。v-rect 是 Vue-Konva 提供的一个指令,用于在画布上创建矩形。 使用 v-rect 指令创建矩形非常简单。首先,你需要在 Vue 组件中引入 Vue-Konva 库,然后使用 v-rect 指令在画布上创建矩形的元素。例如,你可以创建一个矩形,设置其位置、大小、颜色等属性。 ```html <template> <v-stage :config="stageConfig"> <v-layer> <v-rect v-for="(rect, index) in rectangles" :key="index" :config="rect.config" /> </v-layer> </v-stage> </template> <script> import { Stage, Layer, Rect } from "vue-konva"; export default { components: { VStage: Stage, VLayer: Layer, VRect: Rect, }, data() { return { stageConfig: { width: window.innerWidth, height: window.innerHeight, }, rectangles: [ { config: { x: 100, y: 100, width: 200, height: 100, fill: "red", }, }, { config: { x: 300, y: 200, width: 150, height: 150, fill: "blue", }, }, ], }; }, }; </script> ``` 在上面的代码中,我们创建了一个 Vue 组件,其中包含了 VStage、VLayer 和 VRect 组件。通过给 VStage 设置 config 属性,我们可以定义画布的大小。然后,在 VLayer 中,通过遍历 rectangles 数组并使用 v-rect 指令,我们可以在画布上创建多个矩形。每个矩形都有一个 config 对象,用于定义其位置、大小和颜色等属性。 通过这种方式,我们可以在 Vue.js 中轻松地创建和管理 Konva Canvas 上的矩形,并对其进行各种操作和交互。无论是改变矩形的位置、大小,还是响应用户的交互事件,v-rect 都为我们提供了便捷的方法。 ### 回答3: Vue-Konva是一个基于Vue.js的HTML5 Canvas库,用于创建和操作可视化图形。 v-rect是Vue-Konva中的一个组件,用于绘制矩形形状。它可以接受一些属性来定义矩形的样式和位置。以下是一些v-rect支持的属性: - x:矩形左上角的x坐标。 - y:矩形左上角的y坐标。 - width:矩形的宽度。 - height:矩形的高度。 - fill:矩形的填充颜色。 - stroke:矩形的描边颜色。 - strokeWidth:矩形的描边宽度。 例如,我们可以使用v-rect创建一个红色的矩形: ``` <template> <v-stage :config="stageSize"> <v-layer> <v-rect :config="rectConfig" /> </v-layer> </v-stage> </template> <script> export default { data() { return { stageSize: { width: 400, height: 400 }, rectConfig: { x: 100, y: 100, width: 200, height: 100, fill: 'red' } } } } </script> ``` 在上面的示例中,我们使用v-stage和v-layer组件来创建一个舞台和图层。然后,我们在图层中使用v-rect组件来创建矩形。通过设置rectConfig对象的属性,我们定义了矩形的位置、大小和颜色。 以上就是关于Vue-Konva的v-rect的使用介绍。希望能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值