码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue中v-on的基础用法、参数传递和修饰符


    目录

    一、v-on的基本用法

    使用v-on:click给button绑定监听事件以及回调函数,@是v-on:的缩写,也就是简写也可以使用@click。方法一般是需要写方法名加上(),在@click中可以省掉,如上述的加。

    二、v-on的参数传递

    三、v-on的修饰词

    .stop的使用,btn的click事件不会传播,不会冒泡到上层,调用event.stopPropagation()。

    .prevent 调用event.preeventDefault阻止默认行为。

    .enter监听键盘事件;

    .once 事件只触发一次(常用);

    .capture 使用事件的捕获模式;

    .self 只有event.target是当前操作的元素时才触发事件;

    .passive 事件的默认行为立即执行,无需等待事件回调执行完毕;


    一、v-on的基本用法

    使用v-on:click给button绑定监听事件以及回调函数,@是v-on:的缩写,也就是简写也可以使用@click。方法一般是需要写方法名加上(),在@click中可以省掉,如上述的。

    以简单的计数器为例

    1. <body>
    2. <div id="app">
    3. <h2>{{count}}h2>
    4. <button @click="increment">加button>
    5. <button @click="decrement">减button>
    6. div>
    7. <script>
    8. const app = new Vue({
    9. el:"#app",
    10. data:{
    11. count:0
    12. },
    13. methods: {
    14. increment(){
    15. this.count++
    16. },
    17. decrement(){
    18. this.count--
    19. }
    20. }
    21. })
    22. script>
    23. body>

    二、v-on的参数传递

    在methods中定义的方法,我们可以进行调用,可以带上(),也可以不带()

    如下的btnClick的调用中,加了()想要调用,里面必须要有值,如果不加小括号,就只会调用事件对象。

    btnClick3想要传入event,需要在调用时写$event,才能调用事件对象。

    1. <div id="app">
    2. <button @click="btnClick">按钮1button>
    3. <button @click="btnClick()">按钮2button>
    4. <button @click="btnClick2(123)">按钮3button>
    5. <button @click="btnClick2()">按钮4button>
    6. <button @click="btnClick2">按钮5button>
    7. <button @click="btnClick3($event,123)">按钮6button>
    8. div>
    9. <script src="vue.js">script>
    10. <script>
    11. const app = new Vue({
    12. el:"#app",
    13. methods:{
    14. btnClick(){
    15. console.log("点击XXX");
    16. },
    17. btnClick2(value){
    18. console.log(value+"----------");
    19. },
    20. btnClick3(event,value){
    21. console.log(event+"----------"+value);
    22. }
    23. }
    24. })
    25. script>

    1. 事件没传参,可以省略()
    2. 事件调用方法传参了,写函数时候省略了小括号,但是函数本身是需要传递一个参数的,这个参数就是原生事件event参数传递进去
    3. 如果同时需要传入某个参数,同时需要event是,可以通过$event传入事件。

    三、v-on的修饰词

    1. .stop的使用,btn的click事件不会传播,不会冒泡到上层,调用event.stopPropagation()。

    2. .prevent 调用event.preeventDefault阻止默认行为。

    3. .enter监听键盘事件;

    4. once 事件只触发一次(常用);

    5. capture 使用事件的捕获模式;

    6. self 只有event.target是当前操作的元素时才触发事件;

    7. passive 事件的默认行为立即执行,无需等待事件回调执行完毕;

    1. <style>
    2. .div {
    3. height:80px;
    4. background:#f00;
    5. }
    6. style>
    7. head>
    8. <body>
    9. <div id="app">
    10. <div @click="divClick">
    11. <button @click.stop="btnClick">按钮1button>
    12. div>
    13. <form action="www.baidu.com">
    14. <button type="submit" @click.prevent="submitClick">提交button>
    15. form>
    16. <form @submit.prevent=''>
    17. 账号<input type="text" name="user"/>
    18. 密码<input type="text" name="password" @keyup.enter="submit"/>
    19. <input type="submit" value="登录"/>
    20. form>
    21. <button @click.once="showInfo">点我提示信息button>
    22. <div class="box1" @click.capture="show(111)">
    23. div1外面
    24. <div class="box2" @click="show(222)">
    25. div2里面
    26. div>
    27. div>
    28. <div class="div" @click.self="showself">
    29. <button @click="showself">点我button>
    30. div>
    31. div>
    32. <script src="vue.js">script>
    33. <script>
    34. const app = new Vue({
    35. el:"#app",
    36. methods:{
    37. btnClick(){
    38. console.log("点击button");
    39. },
    40. divClick(){
    41. console.log("点击div");
    42. },
    43. submitClcik(){
    44. console.log("提交被阻止了")
    45. },
    46. submit(){
    47. console.log("keyup点击")
    48. },
    49. showInfo(){
    50. alert('web学习真有趣')
    51. },
    52. show(msg){
    53. console.log(msg)
    54. },
    55. showself(e){
    56. console.log(e.target);
    57. },
    58. }
    59. })
    60. script>
    61. body>

  • 相关阅读:
    笙默考试管理系统-MyExamTest----codemirror(15)
    代码随想录 Day50 单调栈 LeetCodeT503 下一个最大元素II T42接雨水
    基于.NetCore开发博客项目 StarBlog - (27) 使用JWT保护接口
    技术分享 | ClickHouse 冷热存储分离方案线上实践
    Spring的循环依赖问题
    torch_scatter.scatter()的使用方法详解
    Flink有哪些功能组件
    超越ChatGPT:大模型的智能极限
    RAR压缩解压命令
    RK3399平台开发系列讲解(PCI/PCI-E)5.55、PCIE RC枚举EP过程
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126048832
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号