Vue入门---事件与方法详解

简介: 一、 vue方法实现 1 DOCTYPE html> 2 3 4 5 Vue方法与事件 6 7 8 9 10 11 点击我 12 ...

一、 vue方法实现

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>Vue方法与事件</title>
 6         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7         <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
 8     </head>
 9     <body>
10         <div id="test">
11             <button @click="sayHi">点击我</button> <!--这里使用@-->
12         </div>
13         <script type="text/javascript">
14             var myVue = new Vue({
15                 el: '#test',
16                 methods: {      //这里使用methods
17                     sayHi: function () {
18                         alert('我被点击了')
19                     }
20                 }
21             })
22         </script>
23     </body>
24 </html>

二、 方法传参

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>Vue方法与事件</title>
 6         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7         <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
 8     </head>
 9     <body>
10         <div id="test">
11             <button @click="sayHi('你好')">说你好</button> <!--这里使用@-->
12             <button @click="sayHi('我被点击了')">说我被点击了</button> <!--这里使用@-->
13         </div>
14         <script type="text/javascript">
15             var myVue = new Vue({
16                 el: '#test',
17                 methods: {      //这里使用methods
18                     sayHi: function (message) {
19                         alert(message)
20                     }
21                 }
22             })
23         </script>
24     </body>
25 </html>

 

三 、vue访问原生 DOM 事件

注意用$event获取

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>Vue方法与事件</title>
 6         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 7         <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
 8     </head>
 9     <body>
10         <div id="test">
11             <button @click="changeColor('你好',$event)">点击我</button> <!--这里使用@-->
12             <div style="height: 100px;width: 100px;background-color: red;" @mouseover="over('鼠标从我上面滑过',$event)">
13                 鼠标从我上面滑过试试
14             </div>
15         </div>
16         <script type="text/javascript">
17             var myVue = new Vue({
18                 el: '#test',
19                 methods: {      //这里使用methods
20                     changeColor: function (message, event) {
21                         alert(message+event);    //弹出我被点击了,事件是[object MouseEvent]
22                     },
23                     over :function (message, event) {
24                         alert(message+event);   //弹出鼠标从我上面滑过,事件是[object MouseEvent]
25                     }
26                 }
27             })
28         </script>
29     </body>
30 </html>

 

四、 事件修饰符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Vue方法与事件</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="test">
            <button @click.stop="sayHi('你好')">说你好</button> <!-- 阻止单击事件冒泡 -->
            <button @click.prevent="sayHi('你好')">说你好</button> <!-- 提交事件不再重载页面 -->
            <button @click.stop.prevent="sayHi('你好')">说你好</button> <!-- 阻止单击事件冒泡和提交事件不再重载页面 -->
            <button @click.capture="sayHi('你好')">说你好</button>  <!-- 添加事件侦听器时使用 capture 模式 -->
            <button @click.self="sayHi('你好')">说你好</button>    <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
            
            <div @keyup.13="sayHi('你好')">说你好</div>  <!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
        </div>
        <script type="text/javascript">
            var myVue = new Vue({
                el: '#test',
                methods: {      //这里使用methods
                    sayHi: function (message) {
                        alert(message)
                    }
                }
            })
        </script>
    </body>
</html>

 

 五、常用事件

  v-on:click/mouseover......

  简写的:    @click=""   推荐

  1、事件对象:
    @click="show($event)"
  2、事件冒泡:
    阻止冒泡:
    a). ev.cancelBubble=true;
    b). @click.stop 推荐
  3、默认行为(默认事件):
    阻止默认行为:
      a). ev.preventDefault();
      b). @contextmenu.prevent 推荐
  4、键盘:
    @keydown $event ev.keyCode
    @keyup

    常用键:
      回车
      a). @keyup.13
      b). @keyup.enter
      上、下、左、右
      @keyup/keydown.left  // 左
      @keyup/keydown.right  // 右
      @keyup/keydown.up // 上
      @keyup/keydown.down  // 下

目录
打赏
0
0
0
0
379
分享
相关文章
Vue实现动态数据透视表(交叉表)
Vue实现动态数据透视表(交叉表)
73 13
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。
属性描述符初探——Vue实现数据劫持的基础
属性描述符还有很多内容可以挖掘,比如defineProperty与Proxy的区别,比如vue2与vue3实现数据劫持的方式有什么不同,实现效果有哪些差异等,这篇博文只是入门,以后有时间再深挖。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Vue中的class和style绑定
在 Vue 中,class 和 style 绑定是基于数据驱动视图的强大功能。通过 class 绑定,可以动态更新元素的 class 属性,支持对象和数组语法,适用于普通元素和组件。style 绑定则允许以对象或数组形式动态设置内联样式,Vue 会根据数据变化自动更新 DOM。
|
4月前
|
vue使用iconfont图标
vue使用iconfont图标
187 1
Vue Router 核心原理
Vue Router 是 Vue.js 的官方路由管理器,用于实现单页面应用(SPA)的路由功能。其核心原理包括路由配置、监听浏览器事件和组件渲染等。通过定义路径与组件的映射关系,Vue Router 将用户访问的路径与对应的组件关联,支持哈希和历史模式监听 URL 变化,确保页面导航时正确渲染组件。
ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
131 12
Vue Router 简介
Vue Router 是 Vue.js 官方的路由管理库,用于构建单页面应用(SPA)。它将不同页面映射到对应组件,支持嵌套路由、路由参数和导航守卫等功能,简化复杂前端应用的开发。主要特性包括路由映射、嵌套路由、路由参数、导航守卫和路由懒加载,提升性能和开发效率。安装命令:`npm install vue-router`。
iframe嵌入页面实现免登录思路(以vue为例)
通过上述步骤,可以在Vue.js项目中通过 `iframe`实现不同应用间的免登录功能。利用Token传递和消息传递机制,可以确保安全、高效地在主应用和子应用间共享登录状态。这种方法在实际项目中具有广泛的应用前景,能够显著提升用户体验。
405 8