Vue让你轻松实现盒子的显示隐藏和双向数据绑定!

news2024/10/7 16:15:39

Vue让你轻松实现盒子的显示隐藏和双向数据绑定!

  • 一、Vue让你轻松实现盒子的显示隐藏和双向数据绑定!
    • (一)v-if 和 v-show
      • 1. v-show
      • 2. v-if
      • 3. 应用场景:
      • 4. 案例:展开折叠盒子
    • (二)v-else 和 v-else-if
    • (三)v-model
      • 1. 基本使用
      • 2. v-model 处理其他表单元素
      • 3. v-model 修饰符
        • ①、.number:转数字,以parseFloat转成数字类型
        • ②、.trim:去除首尾空白字符
        • ③、.lazy:在change时触发而非inupt时
    • (四)v-text 和 v-html
      • 1. v-text指令
      • 2. v-html指令

一、Vue让你轻松实现盒子的显示隐藏和双向数据绑定!

(一)v-if 和 v-show

  • 基本使用:v-show 和 v-if 功能: 控制盒子的显示隐藏

1. v-show

  • 语法: v-show=“布尔值” (true显示, false隐藏)
  • 原理: 实质是在控制元素的 css 样式, display: none;
<template>
  <div>
    <h1>v-show</h1>
    <p>v-show="变量" 变量:true 展示</p>
    
    <div class="box" v-show="key"></div>
  </div>
</template>
<script>
export default {
  data(){
    return{
      key:true
    }
  }
}
</script>
<style>
.box{
  width: 100px;
  height: 100px;
  background-color: brown;
}
</style>

在这里插入图片描述
在这里插入图片描述

2. v-if

  • 语法: v-if=“布尔值” (true显示, false隐藏)
  • 原理: 实质是在动态的创建 或者 删除元素节点
  • 在这里插入图片描述

3. 应用场景:

  • 如果是频繁的切换显示隐藏, 用 v-show
    (v-show, 只是控制css样式,而v-if, 频繁切换会大量的创建和删除元素, 消耗性能)
  • 如果是不用频繁切换, 要么显示, 要么隐藏的情况, 适合于用 v-if
    (v-if 是惰性的, 如果初始值为 false, 那么这些元素就直接不创建了, 节省一些初始渲染开销)
    v-show 和 v-if 功能: 控制盒子的显示隐藏

4. 案例:展开折叠盒子

<template>
  <div>
    <h1>v-show</h1>
    <p>v-show="变量" 变量:true 展示 控制盒子显示隐藏</p>
    <p>v-if="变量" 变量:true 展示  控制盒子创建删除</p>

    <!-- 需求1:有个按钮控制下,点击按钮,隐藏!再次点击,又出现 -->
    <!--  1.注册点击事件 -->
    <!--  2.控制显示隐藏:盒子,被谁控制 key -->
    <!--  3.点击后只要控制key,就控制了盒子的显示和隐藏 -->
    <!--   key: true || false 取反-->

    <!-- 需求2:当有盒子:显示折叠;当没有盒子:显示展开 -->
    <!--  1.文字需要被盒子的状态控制 -->
    <!--  2.盒子的状态:key -->
    <!--    key?'折叠':'展开' -->
    <button @click="key=!key">{{ key?'折叠':'展开' }}</button>
    <div class="box" v-show="key"></div>
    <div class="box" v-if="key"></div>
  </div>
</template>

<script>
export default {
  data(){
    return{
      key:true
    }
  }
}
</script>
<style>
.box{
  width: 100px;
  height: 100px;
  background-color: brown;
  margin: 5px;
}
</style>

在这里插入图片描述

(二)v-else 和 v-else-if

  • 注意:指令可以配套!标签不用配套
<div id="app">
  <h1 v-if="isLogin">尊敬的超级vip, 你好</h1>
  <h1 v-else>你谁呀, 赶紧登陆~</h1>

  <hr>
  
  <h1 v-if="age >= 60">60岁以上, 广场舞</h1>
  <h1 v-else-if="age >= 30">30岁以上, 搓麻将</h1>
  <h1 v-else-if="age >= 20">20岁以上, 蹦迪</h1>
  <h1 v-else>20岁以下, 唱跳rap篮球</h1>
</div>

(三)v-model

1. 基本使用

  • 作用: 给表单元素使用, 双向数据绑定
    ①、数据变化了, 视图会跟着变
    ②、视图变化了, 数据要跟着变
  • 输入框内容变化了(监听用户的输入, 监听input事件), 数据要跟着变
  • 语法: v-model=‘值’
<template>
  <div>
    <input type="text" v-model="msg">
    <!-- v-bind: 单向数据绑定,数据层->视图层  -->
    <!-- v-model: 双向数据绑定,数据层<->视图层  -->
  </div>
</template>
<script>
export default {
  data(){
    return{
      msg:"我是初始化数据"
    }
  }
}
</script>

在这里插入图片描述

2. v-model 处理其他表单元素

  • v-model 会忽略掉表单元素原本的value, checked等初始值
    ①、textarea
    ②、select
    ③、checkbox
<template>
  <div>
    <input type="text" v-model="msg">
    <!-- v-model对于表单:直接使用,不关注value、checkbox -->
    <input type="checkbox" v-model="key">
    <textarea v-model="msg"></textarea><br/>
    <select v-model="num"><br/>
      <option value="1">北京</option>
      <option value="2">上海</option>
      <option value="3">青岛</option>
    </select>

  </div>
</template>

<script>
export default {
  data(){
    return{
      msg:"我是初始化数据",
      key:true,
      num:"3"
    }
  }
}
</script>

在这里插入图片描述

3. v-model 修饰符

  • 语法: v-model.修饰符=“Vue数据变量”

①、.number:转数字,以parseFloat转成数字类型

  • 如果想自动将用户的输入值, 用parseFloat转成数字类型, ,可以给 v-model 添加 number 修饰符:
<input type="text" placeholder="输入年龄" v-model.number="age">
  • 如果这个值如果这个值无法转数字,则会返回原始的值。

②、.trim:去除首尾空白字符

  • 如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:
<input type="text" placeholder="输入姓名" v-model.number="name">

③、.lazy:在change时触发而非inupt时

  • change时而非input时更新,可以给 v-model 添加 lazy 修饰符:
<input type="text" placeholder="输入价格" v-model.number="name">

(四)v-text 和 v-html

1. v-text指令

  • 作用:更新元素的innerText/innerHTML
  • 解释:更新元素的 textContent/innerText。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。
<h1 v-text="msg"></h1>

2. v-html指令

  • 解释:更新DOM对象的 innerHTML,html标签会生效
<h1 v-html="msg"></h1>
  • 在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。
  • 只在可信内容上使用 v-html永不用在用户提交的内容上。
  • 语法:
    ⚫ v-text=“值”
    ⚫ v-html=“值”
  • 区别:
    ⚫ v-text 不解析标签,把值当成普通字符串显示。
    ⚫ v-html 解析标签,把值当成标签进行解析显示。
<template>
  <div>
    <h1>v-text 和 v-html</h1>

    <p v-text="msg"></p>
    <p v-html="msg"></p>
  </div>
</template>

<script>
export default {
  data(){
    return{
      msg:"<button>btn</button>"
    }
  }
}
</script>

在这里插入图片描述

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

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

相关文章

为什么年龄越大工作失误越多水平越低能力越差-个人案例

此为内容创作模板&#xff0c;在发布之前请将不必要的内容删除 在日复一日的工作中&#xff0c;我们免不了会产生一些失误&#xff0c;会因此感到沮丧和失望。但如何正确地对待和处理这些失误才是最重要的&#xff0c;它直接影响到我们的工作表现和个人成长。一起来谈谈作为职…

Unity3D:自定义 Editor 工具

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 使用自定义 Editor 工具 从 Scene 视图中可以访问使用工具模式 API 创建的自定义工具。 您可以通过以下方式来访问自定义工具&#xff1a; 单击场景视图工具工具条叠加中的可用自…

KaiwuDB 发布智慧矿山解决方案

5月21日&#xff0c;天津第七届世界智能大会&#xff08;WIC&#xff09;圆满落幕。作为智能领域的国家级盛会&#xff0c;WIC 汇聚了全球知名院士、顶级学者、产业领袖分享先进技术和实践经验&#xff0c;推进智能技术创新合作。KaiwuDB 受邀出席大会并正式发布智慧矿山解决方…

Seata Saga 模式快速入门和最佳实践

文&#xff5c;王特&#xff08;花名&#xff1a;亦夏&#xff09; Email&#xff1a;yixia.wtantgroup.com 蚂蚁集团数据中间件核心开发 本文 4927 字 阅读 13 分钟 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服…

ssm+java高校图书馆图书借阅导航系统

智能图书馆导航管理系统是一款基于BS架构模式开发的图书馆宣传网站&#xff0c;网页端采用SSM框架技术开发&#xff0c;MySQL作为数据库&#xff0c;同时使用了JSP、java web等技术进行开发&#xff0c;最终达到智能图书导航的实现&#xff0c;能够实现用户搜索书籍&#xff0c…

Vue中如何进行图片处理与滤镜效果?

Vue中如何进行图片处理与滤镜效果&#xff1f; 在 Vue 应用程序中&#xff0c;处理图片和应用滤镜效果是非常常见的需求。这可以让你的应用程序更加生动而丰富&#xff0c;吸引更多用户的眼球。Vue 提供了多种方式来处理图片和应用滤镜效果&#xff0c;让你可以轻松地实现这些…

一文带你读懂验厂审核!

验厂是什么&#xff1f; 验厂似乎是非汽车行业通俗的叫法&#xff0c;指的是下游客户对上游供应商的考核&#xff1b;在汽车行业&#xff0c;更准确的称呼为供应商审核&#xff0c;包括潜在供应商审核和供应商年审。所以为了避免误解&#xff0c;跟汽车行业的客户沟通的时候&am…

千万级入口服务[Gateway]框架设计(二)

本文将以技术调研模式编写&#xff0c;非技术同学可跳过。 文章目录 背景实现二&#xff1a;开源 go-pluginDemo 实现Benchwork 基准性能小结 附录 背景 基于组件(插件)模式设计构建的入口服务&#xff0c;在使用 Go 原生包 plugin 实现的时候&#xff0c;会存在功能缺陷问题…

PSP - RoseTTAFold2 的 PDB 结果预处理

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131201456 RoseTTAFold2 是蛋白质结构预测算法&#xff0c;利用了深度学习和三维几何建模的技术&#xff0c;能够快速准确地预测蛋白质的…

【社区图书馆】《看漫画学Python:有趣、有料、好玩、好用(全彩修订版)》

背景 Python是一门既简单又强大的编程语言&#xff0c;被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要&#xff0c;成为国家计算机等级考试科目&#xff0c;某些中小学也开设了Python编程课程。本书秉承有趣、有料、好玩…

【方法】PDF文档可以转图片吗?如何操作?

需要把PDF文档转换成图片&#xff0c;你会怎么做呢&#xff1f; 有些小伙伴可能会直接截图保存&#xff0c;确实是一个快捷的方法&#xff0c;但这种方法容易造成图片质量的损失&#xff0c;也可能遇到无法截图整个页面的情况&#xff0c;或者文档页面多&#xff0c;截图耗费很…

【Android -- JNI 和 NDK】JNI 基础知识以及如何使用

JNI 基础知识 我们来系统梳理一下JNI中涉及的基本知识。 JNI定义了以下数据类型&#xff0c;这些类型和Java中的数据类型是一致的&#xff1a; Java原始类型&#xff1a;jint, jbyte, jshort, jlong, jfloat, jdouble, jchar, jboolean这些分别对应这 java 的int, byte, shor…

java反射调用get/set方法

1 前言 最新工作中&#xff0c;遇到了通过反射调用get/set方法的地方&#xff0c;虽然反射的性能不是很好&#xff0c;但是相比较于硬编码的不易扩展&#xff0c;getDeclareFields可以拿到所有的成员变量&#xff0c;后续添加或删除成员变量时&#xff0c;不用修改代码&#x…

Vue组件——动态、缓存、异步组件

1. 动态组件 component 语法&#xff1a;静态&#xff1a;<component is"组件名"></component> 动态&#xff1a;<component :is"组件名"></component> 可以用来实现页面的切换&#xff1a; // 模板<component :is"n&q…

目标检测数据集---三星工业缺陷数据集

✨✨✨✨✨✨目标检测数据集✨✨✨✨✨✨ 本专栏提供各种场景的数据集,主要聚焦:工业缺陷检测数据集、小目标数据集、遥感数据集、红外小目标数据集,该专栏的数据集会在多个专栏进行验证,在多个数据集进行验证mAP涨点明显,尤其是小目标、遮挡物精度提升明显的数据集会在该…

如何利用工业RFID识别设备帮助企业提高产品质量?

ANDEAWELL作为国内知名的工业识别设备厂家&#xff0c;今天就跟大家一起来了解一下&#xff0c;企业如何利用工业RFID识别设备帮助企业提高产品质量。 1. 严格的质量控制流程 在生产过程中&#xff0c;我们需要建立一套严格的质量控制流程。这个流程应该包括原材料的采购、生产…

【前端 - CSS】第 16 课 - 伪类选择器(鼠标悬停状态)

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、伪类选择器 3、伪类 - 超链接&#xff08;拓展&#xff09; 4、总结 1、缘起 在 CSS 中&#xff0c;我们使用 hover…

4、nacos服务的linux部署

1、下载nacoz注册中心 Nacos 快速开始通过这个里面查找地址进行下载, 2、下载之后通过xshell的xftp上传到服务器上&#xff0c;比如上传到home下的soft&#xff0c;如果没有soft进行创建 chmod对文件夹进行授权&#xff0c;不然xftp应该上传不到这个文件夹 3、解压缩 解压缩之…

【笔试强训选择题】Day26.习题(错题)解析

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;笔试强训选择题 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&#xff…

100种思维模型之复利原理-77

关于复利&#xff0c;有一个广为流传的故事&#xff0c;相信大家都听过&#xff1a;在国际象棋的棋盘上&#xff0c;第一个格子放1粒米&#xff0c;第二格翻倍放2粒&#xff0c;第三格再翻倍放4粒&#xff0c;以此类推&#xff0c;下一格都是前一格的一倍&#xff0c;一直放到最…