03-Vue基础语法之指令语法与条件渲染

news2024/9/20 20:33:46

个人名片:
😊作者简介:一名大一在校生,web前端开发专业
🤡 个人主页:python学不会123
🐼
座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。
🎅**学习目标: 坚持每一次的学习打卡,学好js

文章目录

    • 指令语法
      • 1.v-bind ——强制绑定数据
      • 2.v-model——双向数据绑定
      • 3.v-on——绑定事件监听
    • v-bind和v-model的区别
    • 条件渲染指令
      • 1.v-if指令
      • 2.v-show指令
    • 总结

昨天我们对Vue的插值语法有了初步的了解后,今天学习Vue的指令语法,让我们一起看下去吧

指令语法

1.v-bind ——强制绑定数据

特点:数据只能从data流向页面
语法:

`完整写法: <img v-bind:src="imgURL" alt="">
         简写 <img :src="imgURL" alt="">`
     

注意:v-bind一般用在标签属性中。这里的 v-bind: 使“ ”里的内容变为表达式

2.v-model——双向数据绑定

特点:数据不仅能从 data 流向页面,还能从页面流向 data
语法:v-mode:value="xxx" 或简写为 v-model="xxx"
注意:双向绑定能双向同步data值和页面值,它只能用在表单元素上(如: input、select等)
代码示例

 <div id="app">
        <!-- //双向绑定 可用在input和textarea 中
        -->
        <!-- <input type="text" v-model="message"> -->
        <!-- <input type="text" :value="message" v-on:input="valueChange"> -->
       <input type="text" :value="message" @input="message = $event.target.value">
        <h2>{{message}}</h2>

        <textarea name="" id="one" cols="30" rows="10" v-model="message">

        </textarea>
        <p>输入的内容:{{message}}</p>
    </div>
    <script>
        
         /*
        v-model语法糖:
        1.v-bind绑定一个value属性
        2.v-on 指令给当前元素绑定input事件
        
         */
        const app =new Vue({
            el:'#app',
            data:{
                message:'你好啊'
            },
            methods:{
                valueChange(event){
                   this.message = event.target.value;
                }
            }
        })
    </script>

v-model双向数据绑定

3.v-on——绑定事件监听

特点:绑定指定事件名的回调函数
语法:v-on:click =‘xxx’ 缩写为@
代码示例:

<div id="app">
        <h2>{{counter}}</h2>
        <h2></h2>
        <button @click="increment">+</button>
        <button  @click="decrement">-</button>
        
    </div>
    <script>
        /*v-on指令
        作用:绑定事件监听器
        缩写 @
        语法: Function|Inline Statement|Object
        参数: event

        */
      const app = new Vue({
        el:'#app',
        data:{
           counter:0
        },
        methods:{
            increment(){
             this.counter++
            },
            decrement(){
                this.counter--
            }
        }
      })
    </script>

v-bind和v-model的区别

Vue中的v-model和v-bind是两种不同的指令。
v-model是Vue中用于将表单元素的值绑定到Vue实例上的指令,常用于表单处理中。例如,可以使用
v-model指令将输入框、单选框、复选框等表单元素的值绑定到 Vue实例的数据上,实现双向数据绑定。
v-bind则是Vue中用于动态地绑定属性值的指令。通过v-bind指令,可以动态地将HTML元素的属性绑定到Vue实例的数据上。例如,可以使用v-bind指令将图片的src属性绑定到Vue实例的数据上,实现数据驱动的动态更新。

条件渲染指令

1.v-if指令

特点:不展示的DOM元素直接被移除。
语法:

  • v-if=" 表达式"
  • v-else-if=“表达式”
  • v-else=“表达式”
    注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”。
    代码示例
  <div id="app">
        <h2 v-if="score>=90">优秀  </h2>
        <h2 v-else-if="score>=80">良好  </h2>
        <h2 v-else-if="score>=60">及格 </h2>
        <h2 v-else>不及格  </h2>     
    </div>
    <script>
          const app =new Vue({
        el:'#app',
        data:{
            score:99,//可以随便改变数值
        },
        computed:{
            result(){
                let showMessage = '';
               if(this.score>=90){
                showMessage = '优秀'
               }else if(this.score>=80){
                showMessage = '良好'
               }
               return showMessage
            }
        }       
      })
       </script>

2.v-show指令

特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉
语法:v-show=“表达式”

v-show:当条件为false时,v-show只是给我们元素添加一个行内样式:display:none

代码示例:

  <div id="app">
        <!-- 
            v-if: 当条件为false时,包含v-if指令的元素,压根不会有对应的元素在dom中
          但只有一次切换时选择v-if
         -->
    <h2 v-if="isShow" id="111">{{message}}</h2>
    <!-- 在需要显示与隐藏之间切换频繁时使用v-show
        v-show:当条件为false时,v-show只是给我们元素添加一个行内样式:display:none -->
    <h2 v-show="isShow" id="hhh">{{message}}</h2>
</div>
    <script  >
    const app =new Vue({
        el:'#app',
        data:{
            isShow:true,
            message:'你好啊'
        }
      })
    </script>

总结

v-if : 如果为true, 当前标签才会输出到页面
v-else: 如果为false, 当前标签才会输出到页面
v-show : 通过控制display样式来控制显示/隐藏
v-for : 遍历数组/对象
v-on : 绑定事件监听, 一般简写为@
v-bind : 强制绑定解析表达式, 可以省略v-bind
v-model : 双向数据绑定

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

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

相关文章

【GaussDB(DWS)】数据分布式存储-三种类型的表

toc 一、环境说明 华为数据仓库服务DWS&#xff0c;集群版本8.1.3.320集群拓扑结构&#xff1a; 二、数据分布式方式 DWS采用水平分表的方式&#xff0c;将业务数据表的元组打散存储到各个节点内。这样带来的好处在于&#xff0c;查询中通过查询条件过滤不必要的数据&#…

[工业互联-18]:常见EtherCAT主站方案:SOEM的Windows/Linux解决方案

目录 第1章 SOEM 简介 第2章 SOEM创建EtherCAT主站 2.1 支持Linux和Windows操作系统 2.2 SOEM创建EtherCAT主站的步骤 第3章 QT添加SOEM主站 第1章 SOEM 简介 SOEM (Simple Open EtherCAT Master) 是一种开源的EtherCAT主站协议栈。 EtherCAT&#xff08;Ethernet for C…

飞轮储能系统的建模与MATLAB仿真(永磁同步电机作为飞轮驱动电机)

简介 飞轮储能系统由于其高储能密度、高效率、轻污染的优点而越来越受到重视。飞轮储能系统以高速旋转的飞轮为依托&#xff0c;通过电力电子设备实现电能与动能的相互转化&#xff0c;从而在负载调峰、功率平抑、不间断电源等多领域都有很好的应用表现。 本文选用永磁同步电机…

基于simulink仿真车道偏离警告系统(附源码)

一、前言 此示例演示如何在视频序列中检测和跟踪道路车道标记&#xff0c;并在驾驶员穿过车道时通知驾驶员。该示例说明了如何使用霍夫变换、霍夫线和卡尔曼滤波器模块来创建线检测和跟踪算法。该示例使用以下步骤实现此算法&#xff1a;1&#xff09; 检测当前视频帧中的车道…

计算机通信地址【图解TCP/IP(笔记六)】

文章目录 地址地址的唯一性地址的层次性 地址 通信传输中&#xff0c;发送端和接收端可以被视为通信主体。它们都能由一个所谓“地址”的信息加以标识出来。当人们使用电话时&#xff0c;电话号码就相当于“地址”。当人们选择写信时&#xff0c;通信地址加上姓名就相当于“地…

HarmonyOS学习路之开发篇—数据管理(数据存储管理)

数据存储管理概述 数据存储管理指导开发者基于HarmonyOS进行存储设备&#xff08;包含本地存储、SD卡、U盘等&#xff09;的数据存储管理能力的开发&#xff0c;包括获取存储设备列表&#xff0c;获取存储设备视图等。 基本概念 数据存储管理 数据存储管理包括了获取存储设备…

Vue3+Vite项目配置@路径别名

一、根目录下 vite.config.ts 文件中配置 import { resolve } from path;resolve: {// 设置文件./src路径为 alias: [{find: ,replacement: resolve(__dirname, ./src)}] }二、根目录下 tsconfig.json 文件中配置 //配置 "baseUrl": ".", "paths&qu…

【复习25-29题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第二十天 20/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

智能底盘(2) | 汽车制动系统的发展概述

摘要&#xff1a; 自汽车诞生以来&#xff0c;车辆制动系统就始终在实现汽车流畅操控、保障汽车安全等功能中起着决定性的作用。而制动系统本身也随着工业技术的变革和汽车行业的发展持续进化。 根据制动场景的区别&#xff0c;制动系统可以分为以下两类&#xff1a; 行车制动…

开源新项目Auto-Annotation,这你不了解一下

Auto-Annotation 一个注解实现对业务功能增强的注解集 项目简介 ​ 项目源码开源地址&#xff1a;点这里 ​ 对业务开发过程中经常遇见的一些通用场景进行注解封装&#xff0c;形成一系列比较通用的注解集&#xff0c;来满足日常开发需要。注解集随业务拓展不断更新中&#…

Qt6 第一天认识基本模块、附加模块、支持的平台、QML用户界面

文章目录 Qt6 焦点Qt6 核心-基本模块Qt6 附加模块Qt6 支持的平台Qt6 简介Qt6 消化用户界面 Qt6 焦点 Qt 5在很多年前发布&#xff0c;引入了一种新的声明方式来编写令人惊叹的用户界面。从那时起&#xff0c;我们周围的世界发生了很大的变化。 Qt 6将是Qt 5的延续&#xff0c;不…

插值查找(思路+代码)

变量和二分查找差不多&#xff0c;但是公式变了 公式&#xff1a; int mid left (right - left) * (indexValue -arr[left]) / ( arr[right] - arr[left]) 注意事项&#xff1a; 适用于数据量比较大&#xff0c;数据分布均匀的数据 代码&#xff1a; package search;impor…

回归预测 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 回归预测 | MATLAB实现WOA-CNN鲸鱼算法优化卷积…

34.RocketMQ之Broker端消息存储流程详解

highlight: arduino-light Broker消息存储概要设计 RocketMQ主要存储的文件包括Commitlog文件&#xff0c;ConsumeQueue文件&#xff0c;IndexFile文件。 RMQ把所有主题的消息存储在同一个文件中&#xff0c;确保消息发送时顺序写文件。 为了提高消费效率引入了ConsumeQueue消息…

Android studio 引入不了R包,手动引入显示红色。可以跑起来却没问题

之前在这个问题踩坑2次&#xff0c;遂记录一下。 问题是&#xff1a;工程里找不到自己包名的R&#xff0c;手动导入显示红色&#xff0c;Run起来倒是没问题 尝试过Clean&#xff0c;Rebuild&#xff0c;清缓存&#xff0c;重启&#xff0c;都没用。 最终发现是没有在 Android…

gitlab:(二)gitlab注册用户和邀请进入项目的问题

.新注册用户无法在管理员界面激活 在管理员界面无法进行管理&#xff0c;找不到相关的操作界面 当前gitlab版本 尝试降低gitlab版本 卸载之后删除残留文件 安装指定的低版本&#xff1a;gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm yum install policycoreutils openssh-server op…

网络应用基础ENSP环境的安装(NETBASE第三课)

网络应用基础ENSP环境的安装(NETBASE第三课) eNSP(Enterprise Network Simulation Platform)是一款由华为提供的、可扩展的、图形化操作的网络仿真工具平台&#xff0c;主要对企业网络路由器、交换机进行软件仿真&#xff0c;完美呈现真实设备实景&#xff0c;支持大型网络模拟…

Markdown编辑器Vditor的基本使用以及在Vue3中使用

介绍 官网 GitHub 帮助文档 Vditor是一个Markdown编辑器组件&#xff08;也支持富文本编辑器&#xff09;&#xff0c;可以嵌入到自己的Web应用中。 此Markdown编辑器支持三种模式&#xff08;几乎没有一个Markdown编辑器同时支持这三种模式&#xff09;&#xff1a; 所见即所…

基于matlab消除视频流中摄像机运动的影响(附源码)

一、前言 此示例演示如何从视频流中删除摄像机运动的影响。 在此示例中&#xff0c;我们首先定义要跟踪的目标。在这种情况下&#xff0c;它是汽车的后部和车牌。我们还建立了一个动态搜索区域&#xff0c;其位置由最后一个已知的目标位置确定。然后&#xff0c;我们仅在此搜…

ChatGPT引导下的编程起航:零基础学会Python编程(ChatGPT版)

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言如何使用 ChatGPT对…