VUE基础:循环、判断、点击事件及表单验证双向绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE基础:循环、判断、点击事件及表单验证双向绑定相关的知识,希望对你有一定的参考价值。

参考技术A <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

     .red

         color: red;

     

     .font-size

         font-size: 30px;

     

    </style>

</head>

<body>

    <!-- Vue是单页面应用 -->

    <!-- <div id="app"> -->

        <!-- fn可以加括号也可以不加 -->

        <!-- <h1 v-on:click="fn">msg</h1> -->

        <!-- <h1 @click="fn('好好学习vue')">msg</h1> -->

        <!-- v-on:click 简写为@click fn -->

        <!-- 里面可以写表达式 -->

      <!--   <h1>msg.substring(0,4)</h1> -->

        <!-- vue的条件判断v-if 后面支持变量 也支持直接写布尔值 -->

        <!-- <h1 v-if="false">学习java</h1>

        <h1 v-else-if="true">学习javascript</h1>

        <h1 v-else>学习javaScript</h1>

     </div> -->

     <div id="xuexi">

        <button @click="fn1">点我学习</button>

        <h1 v-if="str1=='java'">学习java</h1>

        <h1 v-else-if="str1='js'">学习javaScript</h1>

        <h1 v-else>学习语言</h1>

        <!-- class对象里面的key表示类名 -->

        <!-- style对象里面的key表示属性名 -->

        <h1 :class="red:flag1,'font-size':flag1" @click="flag1= !flag1">加油学习前端</h1>

    <h1 :style="color:flag1?'red':''" @click="flag1= !flag1">加油学习后端</h1>

    <!-- 循环  v-for  里面有两项 item 表示数组每一项 index表述数组的索引

         循环的时候需要加上key  key最好是对象里面的属性 如果没有再使用index-->

         <!-- v-for 使用in 和 of都可以 -->

    <ul>

        <li v-for="(item,index) in arr"

        :key="item.id"

         @click="choose(index)"

         :style="color:item.flag?'red':''">item.title---item.id</li>

    </ul>

    </div>

    <!-- 属性想使用动态变量需要加上v-bind  可以简写成:-->

    <!-- @click可以直接写js表达式 -->

    <script src="./vue.min.js"></script>

    <script>

        new Vue(

            el:"#app",

            /* 挂载点 */

            el:"#xuexi",

            /* 数据源 */

            data:

                arr:[id:0,

                    title:"今天天气很热",

                    flag:false

                ,

                    id:1,

                    title:"今天天气很冷",

                    flag:false

                ,

                    id:2,

                    title:"今天天气不冷不热",

                    flag:false

                ],

                msg:"欢迎学习vue",

                /* flag:false, */

                flag1:false,

                str1:''

            ,

            /* 定义写方法的地方 */

            methods:

                fn:function(str)

                    alert(str)

                ,

                fn1:function()

                 let str = window.prompt('选择你喜欢的语言')

                 /* 使用this.给他data中的数据赋值 */

                  if(str=="java")

                      this.str1 = 'java'

                  else if(str=="js")

                       this.str1 = 'js'

                  else

                      this.str=''

                 

                ,

                choose:function(index)

                    /* 排他 */

                this.arr.forEach(r => r.flag=false);

                /* 当前索引对象的 flag改成true */

                this.arr[index].flag = true

               

            ,

        )

    </script>

</body>

</html>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<script src="./vue.min.js"></script>

<body>

    <div id="app">

     <!-- <input type="text" :value="str" @input="change"> -->

     <!-- v-model 就类似于上面的写法 是一种语法糖 来实现双向数据绑定 -->

     <input type="text" v-model="str" @keyup.13="keyFn">

      <!-- 后面接修饰符.enter keyCode值为13-->

    <h1>str</h1>

    <!-- 输入email 和  密码 按enter 有校验,首先是非空 email 必须要有@和.

         按enter 可以alert出 邮箱及密码 -->

         <input type="text"  v-model="email"><br>

         <input type="password" v-model="password"><br>

         <button @click="submit" >注册</button>

    </div>

    <script>

     new Vue(

         el:"#app",

         data:

           str:"好好学vue",

           email:'',

           password:'',

         ,

         methods:

             /* change:function(e)

                 // 兼容写法

                 let event = e||event

                console.log(e.target.value);

                 this.str = e.target.value

              */

             keyFn(e)

                /* let event = e||event;

                if(event.keyCode==13)

                    alert(this.str)

                */

             ,

             submit()

                 if(!this.email.trim()||!this.password.trim())

                  alert('邮箱或者密码不能为空')

                  return

                 

                 if(this.email.indexOf('@')==-1||this.email.indexOf('.')==-1)

                  alert('邮箱必须含有@和.')

                  return

                 

                 alert(`您的邮箱是$this.email,您的密码是$this.password`)

             

         ,

     )

    </script>

</body>

</html>

以上是关于VUE基础:循环、判断、点击事件及表单验证双向绑定的主要内容,如果未能解决你的问题,请参考以下文章

vue中表单输入和表单修饰符

Vue基础(表单输入绑定)

Vue基础篇--7表单输入绑定input

Vue双向数据绑定

10《Vue 入门教程》Vue 双向绑定指令

vue.js的一些事件绑定和表单数据双向绑定