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>


目录
相关文章
|
10天前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
70 1
|
21天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
2月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
51 1
vue学习第一章
|
2月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
48 1
|
2月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
39 1
|
2月前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
37 1
|
2月前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
2月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
2月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能

热门文章

最新文章

下一篇
开通oss服务