Vue3

  • 高级函数:
    map/filter/reduce
  • filter 中的回调函数有一个要求:必须返回一个boolean值
    true:当返回true时,函数内部会自动将这次回调的n加入到新的数组中;
    false:当返回false时,函数内部会过滤掉这次的n
<script>
    //1.找出nums中小于100的元素放到newNums
    const nums = [10,20,200,300,40,50];
    //每次遍历一个元素都调用function,并把元素传给形参n
    let newNums = nums.filter(function(n){
      return n<100;
    })
    console.log(newNums) ;//[10,20,40,50]
  </script>
  • map: 将每次调用function(n)的返回结果放到新的数组中
//2.将newNums中的每个元素*2 放到newNums2
    let newNums2 = newNums.map(function(n){
      return n * 2;
    })
  • reduce:对数组中所有内容进行汇总

  console.log(newNums2);// [20, 40, 80, 100]
  //3.将newNums2的元素相加
    let total = newNums2.reduce(function(preValue,n){
      return preValue + n; //返回结果作为preValue
    },0) //0 作为第一次调用的preValue
    //分析调用过程:
    //第一次: preValue=0 ,n = 20;
    //第二次: preValue=函数的返回值(即preValue + n)=20 ,n = 40;
    //第三次: preValue=60 ,n = 80;
    //第四次: preValue=140 ,n = 100;
    //240

用一行代码完成上面三个需求:

const nums = [10,20,200,300,40,50];
let total = nums.filter(function(n){
      return n<100;
    }).map(function(n){
      return n*2;
    }).reduce(function(preValue,n){
      return preValue + n;
    },0)
    console.log(total);
//另一种:
let total = nums.filter(n => n < 100).map(n => n * 2).reduce((preValue,n) => preValue + n,0);
  • input标签 有 input监听事件 :
//valueChange不用加括号,会自动传进去$event
<input type="text" :value="message" @input="valueChange">
methods:{
		
        valueChange(event){
          this.message = event.target.value;
        }
      }
  • v-model是标签的值
  • v-model其实是 v-bind 和v-on的结合:
  <input type="text" :value="message" @input="message = $event.target.value">
  • v-model 与radio
<div id="app">
   <label for="male">
   <input type="radio" name="sex" value="男" id="male" v-model="sex"/></label>
   <label for="female">
   <input type="radio" name="sex" value="女" id="female" v-model="sex" /></label>
   <h2>您选择的性别:{{sex}}</h2>
  </div>
 
  <script>
    const app = new Vue({
      el:"#app",
      data:{
       sex:'男'
      },
      methods:{
        
      }
    })
  </script>
  • v-model 结合单选框,复选框
  • radio返回的是布尔值
    1.单选框案例:只有同意协议,才能点击下一步
<div id="app">
    <label for="license">
        <input type="checkbox" id="license" v-model="isAgree">同意协议
    </label>
    <button :disabled="!isAgree">下一步</button>
  </div>
  
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        isAgree:false,

      },
      methods:{
        
      }
    })
  </script>

2.多选框案例:选择多个爱好

  • checkbox返回数组类型
<div id="app">
    <input type="checkbox" value="篮球" v-model="hobbies">篮球
    <input type="checkbox" value="足球" v-model="hobbies">足球
    <input type="checkbox" value="乒乓球" v-model="hobbies">乒乓球
    <input type="checkbox" value="羽毛球" v-model="hobbies">羽毛球
    <h2>你选择的爱好:{{hobbies}}</h2>
  </div>
  
  <script>
    const app = new Vue({
      el:"#app",
      data:{
       hobbies:[]

      },
      methods:{
        
      }
    })
  </script>
  • 另一种
<div id="app">
    <label :for="item" v-for="item in orginHobbies">
      <input type="checkbox" :id="item" v-model="hobbies" :value="item">{{item}}
    </label>
    <h2>您选择的爱好:{{hobbies}}</h2>
  </div>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        orginHobbies:['篮球','足球','台球','羽毛球'],
        hobbies:[],
      },
      methods:{
        
      }
    })
  </script>
  • v-model 结合select (单选、多选)
  • 和checkbox一样,select也分为单选和多选两种情况:
  • 单选 :只能选中一个值。
    v-model绑定的是一个值
    当我们选中option中的一个时,会将它对应的value赋值到v-model绑定的标识符中
    案例:select只能选一个水果
<div id="app">
    <select name="fruit" id="" v-model="fruit">
      <option value="苹果">苹果</option>
      <option value="梨"></option>
      <option value="葡萄">葡萄</option>
      <option value="香蕉">香蕉</option>
    </select>
    <h2>你选择的水果:{{fruit}}</h2>
  </div>
  
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        fruit:'香蕉',
      },
      methods:{
        
      }
    })
  </script>
  • 多选:可以选中多个值。
    v- model绑定的是一个数组
    当我们选中option中的多个时,会将选中option的value赋值到v-model绑定的标识符中

选择多个水果

 <div id="app">

    <select name="fruits" v-model="fruits" multiple>
      <option value="苹果">苹果</option>
      <option value="梨"></option>
      <option value="葡萄">葡萄</option>
      <option value="香蕉">香蕉</option>
    </select>
    <h2>你选择的水果:{{fruits}}</h2>
  </div>
  
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        fruits:[],
      },
      methods:{
        
      }
    })
  </script>
  • v-model修饰符
  • lazy修饰符:v-model.lazy=" "
    1.默认情况下,v-model是在input事件中同步输入框的数据的。
    2.也就是说,一旦有数据发生改变,对应的data中的数据就会自动发生改变。
    3.lazy修饰符可以让数据在失去焦点或者回车时才会更新
  • number 修饰符 : v-model.number=" "
    1.默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。
    2.但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。
    3.number修饰符可以让在输入框中输入的内容自动转成数字类型
  • trim修饰符
    1.如果输入的内容收尾有很多空格,通常我们希望将其去除
    2.trim修饰符可以过滤内容左右两边的空格

!!!!全部笔记来源王红元老师的教学视频!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值