Vue2.v-指令

news2024/9/21 12:29:17

v-if

在双引号中写判断条件。

<div v-if="score>=90">A</div>
<div v-else-if="score>=80">B</div>
<div v-else>C</div>

image.png

@v-on:

:冒号后面跟着事件。
为了简化,可以直接用@代替v-on:

  • @事件名=“内联语句”
  • @事件名=“methods中的函数名”
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <button v-on:click="score--">-</button>
  <span @click="reset(89)">{{score}}</span>
  <button v-on:click="score++">+</button>
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      score: 89
    },
    methods:{
      reset(e){
        this.score=e;
      },
    }
  })
</script>

上面代码中score上面的click也是可以触发的,不必是按钮。
如果不加this,访问的是全局变量。
可以调用传参。
image.png

:v-bind:

设置html标签属性。
可以用:简写:

  • :属性名=“表达式”
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <img :src="imgUrl" alt="">
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      score: 89,
      imgUrl:"https://avatars.githubusercontent.com/u/65584776?v=4"
    },
  })
</script>

image.png

操作class

:class=“对象/数组”

  • 对象:键是类名,值是布尔值。适合一个类名,来回切换。
  • 数组:数组中的所有类都会添加到盒子中。适合批量添加或删除类。

v-for

基于数据循环,多次渲染整个元素。
遍历数组:v-for="(item,index) in list"
in前后都有空格!

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <ul>
    <li v-for="(item,index) in list":key="item.id">
      index:{{index}}-id:{{item.id}}
      <button @click="del(item.id)">del</button>
    </li>
  </ul>
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      list: [
        {id:1},
        {id:2},
        {id:3},
        {id:4},
        {id:5}
      ]
    },
    methods:{
      del(id){
        this.list=this.list.filter(item=>item.id!=id)
      }
    }
  })
</script>

image.png
v-for中的key:给元素添加唯一标识。只能是字符串和数字。
不加key:原地修改元素,就地复用。

v-model

给表单元素使用,双向数据绑定,可以快速获取或设置表单元素内容。

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <br>
  <span>输入:</span>
  <input type="text" name="" id="" v-model="number">
  <br>
  单选:<input v-model="gender" type="radio" name="gender" value="1"><input v-model="gender" type="radio" name="gender" value="2"><br>
  复选:<input type="checkbox" v-model="isCheck">是否选中<br>
  下拉菜单:
  <select v-model="selected" name="" id="">
    <option value="1">A</option>
    <option value="2">B</option>
    <option value="3">C</option>
    <option value="4">D</option>
  </select>
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      number: "",
      gender: 2,
      isCheck: true,
      selected: 2
    }
  })
</script>

image.png

计算属性

基于现有的属性,计算出新的属性。依赖的数据变化,自动重新计算。
声明在computed配置项中,一个计算属性对应一个函数。
本质上属性,插值表达式中不能带括号()

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  {{total}}
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      list:[
        1,2,3,4
      ]
    },
    computed:{
      total(){
        return this.list.reduce((sum,item)=>sum+item,0)
      }
    }
  })
</script>

image.png
数组实例的 reduce() 方法会在数组的每个元素上依次执行用户提供的 "reducer "回调函数,并传入前一个元素的计算返回值。在数组的所有元素上运行还原器的最终结果是一个单一的值。

vs methods

computed计算属性:

封装了一段对于数据的处理,求得一个结果。

  • 写在computed中
  • 作为属性,直接使用,this.计算属性

methods方法:

给实例提供一个方法,调用以处理业务逻辑。

  • 写在methods中
  • 作为方法,直接使用,this.方法名(),@事件名=“方法名”

缓存特性

计算属性会对计算出来的结果缓存,再次使用直接读取缓存,依赖项变了,会自动重新计算,并再次缓存

计算属性的完整写法

计算属性默认的简写,只能读取访问,不能修改。
如果要修改,需要写计算属性的完整写法。

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  姓:{{lastName}} <br>
  名:{{firstName}} <br>
  姓名:<input type="text" name="" id="" v-model="userName">
</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      lastName: '',
      firstName: ''
    },
    computed: {
      userName: {
        get() {
          console.log('get');
          return this.lastName + this.firstName;
        },
        set(name) {
          console.log('set');
          this.lastName = name[0];
          this.firstName = name.slice(1, name.length);
        }
      }
    }
  })
</script>

image.png

watch监视器

类似于Qt的信号槽。
监视数据变化,执行一些业务逻辑或异步操作。

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <input type="text" name="" id="" v-model="value">
  <ul>
    <li v-for="(item) in list">{{item}}</li>
  </ul>

</div>

<script>
  const app = new Vue({
    //通过el配置选择器,指定vue管理的是哪个盒子
    el: '#app',
    //通过data提供数据
    data: {
      value:'',
      list:[]
    },
    watch:{
      value(oldValue,newValue){
        this.list.push('修改前'+oldValue+"-修改后"+newValue);
      }
    }
  })
</script>

image.png
可能需要搭配timeout防抖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1369792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nessus漏洞扫描工具安装、使用技巧及注意事项

Nessus是一款功能强大的安全评估工具&#xff0c;它可以帮助安全团队快速发现网络中潜在的安全风险和漏洞&#xff0c;并对其进行评估和修复。对于渗透测试人员来说&#xff0c;Nessus更是必不可少的工具之一。 1. Nessus安装 获取安装包&#xff0c;官网地址&#xff1a;http…

【数据库】MySQL锁

一、锁的基本概念 1、锁的定义 锁是协调多个进程或线程并发访问数据库资源的一种机制。 MySQL中的锁是在服务器层或者存储引擎层实现的&#xff0c;保证了数据访问的一致性与有效性。但加锁是消耗资源的&#xff0c;锁的各种操作&#xff0c;包括获得锁、检测锁是否已解除、…

26 数字验证

效果演示 实现了一个简单的数字密码输入表单&#xff0c;用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码&#xff0c;用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…

简单的MOV转MP4方法

1.下载腾讯的QQ影音播放器, 此播放器为绿色视频播放器, 除了播放下载好的视频外没有臃肿无用功能 官网 QQ影音 百度网盘链接&#xff1a;https://pan.baidu.com/s/1G0kSC-844FtRfqGnIoMALA 提取码&#xff1a;dh4w 2.用QQ影音打开MOV文件 3.右下角打开影音工具箱 , 选择截取…

【Java并发】聊聊concurrentHashMap的put核心流程

结构介绍 1.8中concurrentHashMap采用数组链表红黑树的方式存储&#xff0c;并且采用CASSYN的方式。在1.7中主要采用的是数组链表&#xff0c;segment分段锁reentrantlock。本篇主要在1.8基础上介绍下. 那么&#xff0c;我们的主要重点是分析什么呢&#xff0c;其实主要就是p…

强化学习在生成式预训练语言模型中的研究现状简单调研

1. 绪论 本文旨在深入探讨强化学习在生成式预训练语言模型中的应用&#xff0c;特别是在对齐优化、提示词优化和经验记忆增强提示词等方面的具体实践。通过对现有研究的综述&#xff0c;我们将揭示强化学习在提高生成式语言模型性能和人类对话交互的关键作用。虽然这些应用展示…

kubernetes volume 数据存储详解

写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 概述 容器的生命周期可能很短&#xff0c;会被频繁的创建和销毁 保存在容器中的…

Leetcode刷题笔记题解(C++):无重复字符的最长子串

思路&#xff1a; 利用滑动窗口的思想&#xff0c;用起始位置startindex和curlength来记录这个滑动窗口的大小&#xff0c;并且得出最长距离&#xff1b;利用哈希表来判断在滑动窗口中是否存在重复字符&#xff0c;代码如下所示&#xff1a; class Solution { public:int len…

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一&#xff0c;利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口&#xff0c;然后在画笔或者其它的图片处理软件中进行剪…

基于SSM的在线电影票购买系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的在线电影票购买系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

【模拟IC学习笔记】Cascode OTA 设计

辅助定理 增益Gm*输出阻抗 输出短路求Gm 输入置0求输出阻抗 求源极负反馈的增益 随着Vin的增加&#xff0c;Id也在增加&#xff0c;Rs上压降增加&#xff0c;所以&#xff0c;Vin的一部分电压体现在Rs上&#xff0c;而不是全部作为Vgs&#xff0c;因此导致Id变得平滑。 Rs足…

软件测试|MySQL DISTINCT关键字过滤重复数据

简介 在MySQL中&#xff0c;有时候我们需要从表中检索唯一的、不重复的数据。这时&#xff0c;我们可以使用DISTINCT关键字来过滤掉重复的数据行。在本文中&#xff0c;我们将深入探讨MySQL中DISTINCT的用法以及如何在查询中使用它来得到不重复的结果集。 基本语法 DISTINCT…

Influxdb2修改管理员密码

通过恢复管理员令牌来重置InfluxDB2管理员的密码 1.找到数据库的配置文件 一般为config.json 2.配置文件的的blod文件配置 3.在这个混合文本和二进制json文件中搜索已知的用户名或token之类的字符串。 例如&#xff1a; "id":"0bd73badf2941000","…

系列十四、理解MySQL varchar(50)

一、理解MySQL varchar(50) 1.1、概述 日常开发中&#xff0c;数据库建表是必不可少的一个环节&#xff0c;建表的时候通常会看到设定某个字段的长度为varchar(50)&#xff0c;例如如下建表语句&#xff1a; 那么怎么理解varchar(50)&#xff1f;这个分情况的&#xff0c;MySQ…

美创科技葛宏彬:夯实安全基础,对医疗数据风险“逐个击破”

导读 解决医疗机构“临床业务数据合规流动”与“重要数据安全防护”两大难题。 2023年11月11日&#xff0c;在2023年南湖HIT论坛上&#xff0c;HIT专家网联合杭州美创科技股份有限公司&#xff08;以下简称美创科技&#xff09;发布《医疗数据安全风险分析及防范实践》白皮书…

遇到U盘写保护怎么办

U盘写保护 为什么出现写保护的情况 U盘写保护&#xff0c;就是无法对U盘数据进行修改&#xff08;添加、删除、修改名称&#xff09;。 u盘写保护分为硬件写保护、系统或软件异常导致的写保护。 硬件写保护一般是U盘上硬件写保护开关被开启&#xff08;常见于SD卡读卡器侧面会…

【大数据架构】日志采集方案对比

整体架构 日志采集端 Flume Flume的设计宗旨是向Hadoop集群批量导入基于事件的海量数据。系统中最核心的角色是agent&#xff0c;Flume采集系统就是由一个个agent所连接起来形成。每一个agent相当于一个数据传递员&#xff0c;内部有三个组件&#xff1a; source: 采集源&…

HubSpot线索管理系统怎么样?适合哪些企业?

HubSpot的线索管理系统是该平台中销售和市场营销工具的一部分&#xff0c;被称为HubSpot CRM&#xff08;客户关系管理&#xff09;。以下是对HubSpot CRM的一些特点以及适合的企业类型的概述&#xff1a; HubSpot CRM 特点&#xff1a; 1. 用户友好的界面&#xff1a; HubS…

OpenAI ChatGPT-4开发笔记2024-02:Chat之text generation之completions

API而已 大模型封装在库里&#xff0c;库放在服务器上&#xff0c;服务器放在微软的云上。我们能做的&#xff0c;仅仅是通过API这个小小的缝隙&#xff0c;窥探ai的奥妙。从程序员的角度而言&#xff0c;水平的高低&#xff0c;就体现在对openai的这几个api的理解程度上。 申…

【hcie-cloud】【20】容器详解【容器介绍,容器工作机制、容器常用命令说明】【上】

文章目录 前言容器是什么虚拟化技术的四个特点容器也是一种虚拟化技术容器是怎么实现虚拟化的&#xff1f;容器对比虚拟机有哪些优势&#xff1f;容器对比虚拟机有哪些不足&#xff1f;容器不仅是一种虚拟化技术&#xff0c;更重要的是一种应用打包机制容器提供的是PaaS服务常见…