Vue语法

简介: Vue语法

事件处理器

是什么

事件处理器是一种函数,用于响应和处理事件的触发。在编程中,当特定事件发生时,可以通过事件处理器来执行相应的操作和逻辑。

事件处理器通常与特定的事件绑定在一起。当事件触发时,绑定的事件处理器函数将被调用,并且可以访问事件的相关信息。例如,当用户点击按钮时,与该按钮相关联的点击事件处理器将被调用。

在Vue中,可以使用@v-on指令来绑定事件处理器。例如,@click="handleClick"表示将handleClick函数作为点击事件的处理器。

事件处理器函数可以接收事件对象作为参数,该对象包含有关事件的信息,如事件类型、触发元素、鼠标位置等。事件处理器函数可以执行任意的JavaScript代码,以响应事件并执行相应的操作,如更新数据、调用方法、触发其他事件等。

总结来说,事件处理器是一种函数,用于响应和处理特定事件的触发,以执行相应的操作和逻辑。

案列

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
      <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <title>插值</title>
    <style type="text/css">
      .one{
        background-color: red;
        height: 400px;
        width: 400px;
      }
      .two{
        background-color: yellow;
        height: 300px;
        width: 300px;
      }
      .three{
        background-color: greenyellow;
        height: 200px;
        width: 200px;
      }
      .four{
        background-color: blue;
        height: 100px;
        width: 100px;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <div class="one" @click="fun1">
        <div class="two" @click.stop="fun2">
          <div class="three" @click.stop="fun3">
            <div class="four" @click.stop="fun4"></div>
          </div>
        </div>
      </div>
      <input :value="msg" />
      <button @click.once="clickMe">点我</button>
    </div>
    <script type="text/javascript">
      new Vue({
        el:"#app",
        data(){
          return {
            msg:'沸洋洋你个臭傻逼',
          };
          },
          methods:{
            fun1(){
              alert("我是红色");
            },
            fun2(){
              alert("我是黄色");
            },
            fun3(){
              alert("我是黄绿色");
            },
            fun4(){
              alert("我是蓝色");
            },
            clickMe(){
              console.log(this.msg);
            }
          }
      });
    </script>
  </body>
</html>

 

在@click后面加.stop

表单的综合案列

定义

Vue表单是指在Vue.js框架中用于处理用户输入的一组相关元素和功能。它允许你构建交互式的表单界面,处理用户的输入数据,并将其绑定到Vue实例的数据中。Vue表单提供了一种简单、灵活的方式来管理表单元素,实现数据的双向绑定、验证和提交。

常用功能

1. 数据绑定:将表单元素与Vue实例的数据进行绑定,实现双向数据绑定。

2. 表单验证:对用户输入的数据进行验证,确保数据的合法性。

3. 表单提交:监听表单的提交事件,执行相应的操作,如发送表单数据到后台服务器。

4. 表单重置:提供重置按钮,可以将表单中的数据重置为初始状态。

5. 动态表单:根据数据的变化动态生成表单元素,如根据选项数量生成多选框或下拉菜单。 6. 表单数据处理:对表单数据进行处理,如格式化、过滤、计算等。

7. 表单组件封装:将表单元素封装成可复用的组件,提高开发效率和代码可维护性。

8. 表单联动:实现表单元素之间的联动效果,如一个下拉菜单的选项改变会影响另一个表单元素的可选项。

9. 表单数据持久化:将表单数据存储在本地或远程,以便在页面刷新或重新加载后能够恢复数据。

10. 表单样式设计:通过CSS样式对表单进行美化和定制,提升用户体验。 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
      <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <title>表单</title>
  </head>
  <body> 
    <div id="app">
      姓名:<input name="name" v-model="name" /><br />
      密码:<input type="password" v-model="pwd"/><br />
      性别:<span v-for="s in sexList">
        <input type="radio" name="sex" v-model="sex" :value="s.id" />{{s.name}}
      </span><br />
      籍贯:<select name="myAddr" v-model="myAddr">
        <option v-for="a in address" :value="a.id">{{a.name}}</option>
      </select><br />
      爱好:<span v-for="h in hobby"  >
        <input type="checkbox"  v-model="myLike"  name="myLike" :value="h.id" />{{h.name}}
      </span><br />
      个人简介:<textarea v-model="sign" cols="10" rows="5"></textarea><br />
      同意:<input type="checkbox" v-model="ok" /><br />
      <button v-show="ok" @click="dosub">提交</button>
    </div>
    <script type="text/javascript">
      new Vue({
        el:"#app",
        data(){
          return {
            name:'灰太狼',
            pwd:'123456',
            sexList:[{
              name: '男', id:1
            }, 
            {
              name: '女', id:2
            },
            {
              name: '未知', id:0
            }],
            sex:1,
            hobby:[{
                name: '抓羊', id: 1
              },{
                name: '争狼王', id: 2
              },{
                name: '带儿子', id: 3
              }],
            myLike:[],
            address:[{
                name: '羊村', id: 1
              },{
                name: '狼堡', id: 2
              },{
                name: '别墅', id: 3
              },{
                name: '城堡', id: 4
            }],
            myAddr:null,
            sign:null,
            ok:false
          };
          },
          methods:{
            dosub(){
              var obj ={};
              obj.name = this.name;
              obj.pwd = this.pwd;
              obj.sex = this.sex;
              obj.address=this.myAddr;
              obj.love=this.myLike;
              obj.sign=this.sign;
              console.log(obj);
            }
          }
      });
    </script>
  </body>
</html>

 

组件通信

定义

1. 父子组件通信:父组件可以通过props将数据传递给子组件,子组件可以通过$emit触发事件通知父组件。这种方式适合用于父组件向子组件传递静态数据或通过事件监听子组件的动态变化。

2. 子父组件通信:子组件可以通过$emit触发事件,将数据传递给父组件。父组件通过监听子组件的事件,接收数据。这种方式适合用于子组件向父组件传递数据或通知父组件进行某些操作。

3. 兄弟组件通信:如果两个组件处于同一父组件下,它们可以通过父组件作为中间人进行通信。兄弟组件可以通过父组件传递数据,或通过事件派发和监听来进行通信。

4. 跨级组件通信:如果组件之间的关系比较复杂,可以使用Vue的事件总线或Vuex进行跨级组件通信。事件总线是一个空的Vue实例,可以作为中央事件总线,用于触发和监听事件。Vuex是一个专门用于管理Vue应用程序状态的库,可以在任何组件中访问共享的状态。

父传子

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
      <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <title>组件传参父传子</title>
  </head>
  <body>
    <div id="app">
      <p>自定义组件</p>
      <my-button>xx</my-button>
      <p>组件通信-父传子</p>
      <my-button m='懒大王'></my-button>
      <p>组件通信-父传子2</p>
      <my-button m='懒大王' n="10"></my-button>
      </div>
    <script type="text/javascript">
      new Vue({
        el:"#app",
        components:{
          'my-button':{
            props:['m','10'],
            template:'<button @click="clickMe">被{{m}}点击了{{n}}次</button>',
            data:function(){
              return{
                n:1
              }
            },
            methods:{
              clickMe(){
                this.n++;
              }
            }
          }
        },
        data(){
          return {
            msg:'沸洋洋你个臭傻逼',
          };
        },
      });
    </script>
  </body>
</html>

子传父

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
      <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
      <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
    <title>组件传参子传父</title>
  </head>
  <body>
    <div id="app">
      <p>组件通信-子传父</p>
      <my-button m='懒大王' @xxx="getParam" ></my-button>
      </div>
    <script type="text/javascript">
      new Vue({
        el:"#app",
        components:{
          'my-button':{
            props:['m'],
            template:'<button @click="clickMe">被{{m}}点了</button>',
            methods:{
              clickMe(){
                let name ='懒大王';
                let bname = '我的零食屋';
                let price = '白嫖';
                this.$emit('xxx',name,bname,price);
              }
            }
          }
        },
        methods:{
          getParam(a,b,c){
            console.info(a,b,c);
          }
        }
      });
    </script>
  </body>
</html>


相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
5天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
5天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
5天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
5天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
4天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
6天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
4天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
6天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
11天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
11天前
|
存储 JavaScript
Vue 状态管理工具vuex
Vue 状态管理工具vuex