首页 > 其他分享 >2022-08-28 第六小组 高佳誉 学习笔记

2022-08-28 第六小组 高佳誉 学习笔记

时间:2022-08-29 09:22:40浏览次数:58  
标签:Vue 界面 变量 08 元素 28 2022 new data

VUE

重点

  1. 定义
  2. MVVM设计模式
  3. 指令

思维导图

知识点

1. 定义

第三方开发的,基于MVVM设计模式的,渐进式的,纯前端js框架
渐进式的:可以逐步在项目中使用vue的部分功能,可以轻松和其他技术混搭------强烈不建议
纯前端js框架:与后端node.js毫无关系。只靠浏览器就可以执行
以数据操作(增删改查)为主的项目,都可以用vue框架来实现。比如:电商、新闻、微博、知乎、协同办公、管理系统、官网。
框架和库的区别:库指的是工具的集合,我们可以选中其中某些来使用。eg:函数库 jquery
框架:可以帮我们自动化的完成很多重复性的任务。避免重复编码。
原生 浏览器自带的 dom

2. MVVM设计模式

 对前端三大内容进行了重新划分
界面 view
包含了html+css,它支持变量、分支、循环等程序必要的要素
模型对象 Model
专门为界面保存所需的变量和函数的特殊对象。
ViewModel对象
专门负责将界面和模型对象绑定起来。
它可以自动将模型对象中的变量值和函数,送到界面上所需的位置
它能监视程序中变量的变化,只要变量值发生变化,它自动保持界面上显示的值与程序中的变量值始终一致。

3. v-bind指令

元素的属性值随着程序自动变化,用:代替{{}},这里:承担了{{}}的功能,它也是js语法
格式:<元素 v-bind:属性名=“变量或js表达式”> ------原版
          <元素 :属性名="变量或js表达式"> -------简化版
点击查看代码

<!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>
    <script src="js/vue.js"></script>
</head>
<body>
    <div id="app">
    <h3>今天的空气质量:</h3>
    <!-- 需求:pm25<100 1.png,pm25<200 2.png,pm25<300 3.png,其他4.png-->
    <!-- <img src="img/1.png"> -->
    <img :src="pm25<100?'img/1.png':pm25<200?'img/2.png':pm25<300?'img/3.png':'img/4.png'">
     
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                //pm25后面的数值不同,图片也不同
                pm25:200       
          }
        })
    </script>
</body>
</html>

4. v-show指令

定义:专门控制一个元素显示隐藏的指令
何时用:只要希望用程序控制一个元素显示隐藏时
格式:<元素 v-show="变量或条件表达式">
原理:只要new Vue()扫描到v-show所在的元素,就先计算“”中的变量或条件·表达式。
         a.如果条件为true,当前元素正常显示。
         b.如果条件为false,new Vue()自动给当前元素加display:none,让原宿1隐藏。
点击查看代码

<!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> 
    <script src="js/vue.js"></script>
    <style>
        #pop{
          position:fixed;
          top:20%;
          left:50%;
          width:300px;
          height:100px;
          margin-left:-150px;
          margin-top:-50px;
          background-color:lightBlue
        }
        #pop>a{
          float:right;
          margin-right:20px;
          text-decoration:none;
        }
      </style>
</head>
<body>
    <!--  
   寻找哪里可能随程序变化
    本例中: div的显示隐藏状态随程序自动变化,所以用v-show标记出来。
    寻找哪里可能触发事件
    本例中: 点button,会让div显示;点a,让div隐藏 -->
    <div id="app">
     <button @click="show">click me</button>
     <div id="pop" v-show="isShow">
         <a href="javascript:;"  @click="hide">x</a>
     </div>
    </div>
    <script>
   new Vue({
       el:"#app",
       //3.创建模型对象
       //3.1 创建data对象,保存所有界面中所需要的变量
       //本例中,界面只需要一个isshow变量来标记div是否显示
       data:{
           isShow:false //开局,div默认不显示
       },
       //3.2创建methods对象,保存界面所需的所有事件处理函数
       methods:{
           show(){//事件处理函数中,通过修改data中的变量值,来遥控界面中的变化
               this.isShow=true;
           },
           hide(){
               this.isShow=false;
           }
       }
   })
    </script>
</body>
</html>

5. v-for指令

  定义:专门反复生成一组连续的结构相同的元素的特殊指令
何时用:只要在页面中需要连续反复生成多个结构相同的元素时
格式:<要反复生成的元素  v-for="(元素,下标i)  of/in 数组">
注意:v-for一定要写在反复生成的元素上,不要写在父元素上。
按照严格的规定,of前的两个变量必须包裹在()中
vue中的v-for统一了js中的for of和for in,所以,用of/in都可以,效果是一样的.
v-for即可遍历索引数组,又可遍历对象
of/in前的两个变量,每个变量都可随意修改,但是顺序不能变,第一个变量接值,第二个变量接下标或属性
原理:new Vue()扫描到v-for时,就会自动遍历of或in后的数组或对象中每个成员
每遍历数组或对象中的一个成员,就会创建当前元素的一个副本。
同时,还会将当前成员的值,赋值给of/in前的第一个变量,再将当前成员的下标或属性名,赋值给of/in前的第二个变量
of/in前的变量,虽然没有定义在data中,但是依然可以用于当前元素及其子元素中的绑定或指令中。

点击查看代码

<!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>
    <script src="js/vue.js"> </script>
</head>
<body>
    <div id="app">
       <ul>
           <li v-for="(name,i) of arr">第{{i+1}}阶段:{{name}}</li>
       </ul>
       <hr/>
       <!-- for in循环知识点 -->
       <li v-for="(value,key) of lilei">{{key}}:{{value}}</li>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                arr:["lili","zhaozhao","wangwang"],
                lilei:{
                    sname:"Li lei",
                    sage:11,
                    className:"初一二班"
                }
            }
        })
    </script>
</body>
</html>

掌握程度

掌握的情况较为良好练 自我建议:勤加巩固。

收获

明辨是非遵从的只是自己内心的是与非,这无关紧要,但要明确的知道自己身边的朋友应该是什么样的

学习效果展示

标签:Vue,界面,变量,08,元素,28,2022,new,data
From: https://www.cnblogs.com/hanhandeshiqing/p/16634762.html

相关文章

  • [Google] LeetCode 2128 Remove All Ones With Row and Column Flips
    Youaregivenanmxnbinarymatrixgrid.Inoneoperation,youcanchooseanyroworcolumnandflipeachvalueinthatroworcolumn(i.e.,changingall0's......
  • 2022-08-29-Linux C 中connect函数用法及注意事项
    LinuxC中connect函数用法详细介绍及注意事项:C语言connect()函数的函数功能:简单来讲就是:我客户端,自身socket用于和服务端的socket建立socket连线。用于向目的IP和目......
  • 2022 HDU多校5
    PandaemoniumAsphodelos:TheFirstCircle(Savage)(数据结构)Problem有一行长度为\(n\)个格子,一开始每个格子的颜色都是\(0\),并且权值都也是\(0\),现在有\(q\)次操作,每......
  • 2022.8.28 whk 记录
    PrefacePollard-Rho学了800万年模板过不了,AC300没戏了,等AC400叭(高中生活真的好累,一点学OI的时间都没了。只能趁周末水题。Content[CF766E]Mahmoudandaxor......
  • 2022年7月7日周记
    1、本周做了什么:本周我开始学习Python,本周我对Python语言进行了初步的学习,我学习了Python的简介,Python的基本环境。本周我学习了2个小时,因为是初学,没有在代码上花费太多的......
  • 2022年7月14日周记
    周进度报告1、本周做了什么:我下周准备对Python进行进一步学习:Python的基础语法:Python语言与C语言,Java语言有着很多的相似之处,但是也存在着一些差异。交互式语言不需要创建......
  • 2022年7月21日周记
    周进度报告1、本周做了什么:Python运算符,如Python比较运算符,Python赋值运算符,Python位运算符,Python逻辑运算符,Python身份运算符,Python运算符优先级等等。Python条件语句,以......
  • 2022暑假集训新学知识点总结
    新学知识点图论树1、树链剖分(求lca,dfs序等)2、倍增lca流1、Dinic最大流2、匈牙利二分图最大匹配其他1、spfa最短路判负环字符串1、后缀自动机SAM2、回文自动......
  • 2022DAS_April warmup_php
    wp思路先简单代码审计一下,发现它是个渲染HTML表格的东西。可利用的RCE在Base::evaluateExpression中,类之间基本都有继承关系。回调函数在这段代码里也有挺多。利用链:Act......
  • gym-103708E Erudite of words
    Eruditeofwords组合数学+容斥定义\(F_i\):表示由\(i\)个字母组成的长度为\(n\)的单词数(每个字母必须在单词中出现)显然答案就是\(F_k*C_{m}^{k}\)关于\(F_i......