为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第7天 Vue3框架

标签:
Vue.js

课程名称:2022持续升级 Vue3 从入门到实战 掌握完整知识体系

课程章节:第2章 Vue 基础语法

主讲老师:Dell

课程内容:

今天学习的内容包括:

  • 列表循环渲染v-for

  • 对数组做循环

  • 对对像做循环

  • key值

  • push

  • pop

  • shift

  • unshift

  • reverse

  • splice

  • sort

  • v-if和v-for的优先级比较

  • template 占位符

  • 编程练习

课程收获:

我们在使用Vue做数据循环的时候可以使用v-for这个指令

数组循环:

item:每一项内容

index:数组下标

<div  v-for='(item,index) in listArray'></div>

对象循环:

value:对象的value值

key:对象的key值

index:对象的下标

<div  v-for='(value,kye,index) in listObject'></div>

在列表循环渲染时,尽量使用:key来绑定一个唯一的值,这样在页面再次渲染时,
根据这个唯一绑定的值(key值尽量不要使用index ),查询对应的KEy的值是否发生变化,若无变化, 可被复用,不需重新创建新的DOM值,从而提升性能.


使用数组的变更函数

push:在数组后增加一项内容

https://img1.sycdn.imooc.com//631daaef000114b007660387.jpg

https://img1.sycdn.imooc.com//631dab050001abbf09140198.jpg

pop:在数组后减一项内容

https://img1.sycdn.imooc.com//631dab3500011f1107870263.jpg

https://img1.sycdn.imooc.com//631dab2c000187fe07710209.jpg

shift:在数组前减一项内容

https://img1.sycdn.imooc.com//631dab5a0001539307060340.jpg

https://img1.sycdn.imooc.com//631dab4c0001122006990204.jpg

unshift:在数组前加一项内容

https://img1.sycdn.imooc.com//631dab780001ba7404630178.jpg

https://img1.sycdn.imooc.com//631dab720001e41204920188.jpg

splice方法用于添加或删除数组中的元素.

第一个参数是开始插入和(或)删除的数组元素的下标,必须是数字。

第二个参数可选。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。

splice(1,2),意思是从第一个数组下标开始删除两个元素值.

第三个参数,可选。要添加到数组的新元素

//移除数组的第三个元素,并在数组第三个位置添加新元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");

https://img1.sycdn.imooc.com//631dad240001e2ea08160247.jpg

https://img1.sycdn.imooc.com//631dad190001f48806730188.jpg

移除数组第二个元素并添加新元素v4

https://img1.sycdn.imooc.com//631dae3a00013c2a05630159.jpg

https://img1.sycdn.imooc.com//631dae2c0001cf2005180121.jpg

sort:用于将文本文件内容加以排序



reverse:将数组取反

https://img1.sycdn.imooc.com//631dabce00014dc305590229.jpg

https://img1.sycdn.imooc.com//631dabc400019cd506160217.jpg

对数字进行渲染

https://img1.sycdn.imooc.com//631db0d9000114d305660086.jpg

https://img1.sycdn.imooc.com//631db0cf00010fbb07130358.jpg

循环和判断

        v-for优先级比v-if的高,在同一个标签里同时写v-for和v-if的话,v-if不会生效
        解决办法:v-if和v-for不写在同一个标签里。

        让key值等于two的选项不展示,设置v-if,如果key等于two则为false所以不展示内容

https://img1.sycdn.imooc.com//631db3680001bbce04580054.jpg

https://img1.sycdn.imooc.com//631db3570001c08e05070054.jpg


<template></template> 站位标签,页面不会做渲染.在页面展示上不会显示该标签,解决了在循环展示时dom会在最外层多一个空的div.

编程练习

<!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>lesson 11</title>

  <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/vue@next"></script>

</head>

<body>

  <div id="root"></div>

</body>

  <script>

    const app = Vue.createApp({

      data() {

        return {

          message: 'hello',

          listArray: ['one','two','three'], //数组列表

          listObject: { //对象

            one: 'v1',

            two: 'v2',

            three: 'v3',

          },

        }

      },

      methods: {

        handleAddBtnClick() {

          this.listArray.splice(1,1,'v4');

        }

      },

      template: //在列表循环渲染时,尽量使用:key来绑定一个唯一的值,这样在页面再次渲染时,根据这个唯一绑定的值(key值尽量不要使用index ),查询对应的KEy的值是否发生变化,若无变化, 可被复用,不需重新创建新的DOM值,从而提升性能.

      `

        <template v-for="(value, key, index) in listObject" :key="index">

          <div v-if="key !== 'two'">

            {{value}}--{{key}}--{{index}}

          </div>

        </template>

        <div v-for="item in 10">{{item}}</div>

        <button @click="handleAddBtnClick">新增</button>

      `

    });


    const vm = app.mount('#root');

  </script>

</html>


      今天学习了Vue框架里面列表循环渲染,对数组列表和对象进行渲染,v-for也可以对数字进行渲染,学习了往数组列表进行添加,删除,排序等操作以及当做循环判断渲染时遇到的问题,解决了循环展示时dom会在最外层多一个空的div.今天也是收获满满的一天,希望能够每天学习一点点,一直坚持下,加油!              

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消