教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for)

这篇具有很好参考价值的文章主要介绍了教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、新建项目

1、使用Vite创建Vue Typescript 项目(conditional-rendering )

npm create vite@latest 

2、文件结构

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

3、运行

cd conditional-rendering
npm install
npm run dev

二、条件渲染指令

1、v-if

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。

2、v-else

可以使用 v-else 为 v-if 添加一个“else 区块”。

3、v-else-if

v-else-if 提供的是相应于 v-if 的“else if 区块”。它可以连续多次重复使用。

4、v-show

可以用来按条件显示一个元素的指令是 v-show。

5、v-for

三、案例

1、案例 显示当前库存状态

v-if、v-else、v-else-if他们是把多余的dom节点去除(不是none),下面这个案例使用这三个指令完成。

(1)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端
教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端
教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(2)HelloWorld.vue参考源码

<template>
  <div id="app">
    <input type="text" v-model="stock"/>
    <p v-if='stock > 10'>库存为{{ stock }}</p>
    <p v-else-if='0 < stock && stock <= 5'>商品即将售馨</p>
    <p v-else>暂时没有库存</p>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
const stock = ref(0)
</script>

2、案例 根据条件显示不同的template标签

既想使用一个标签包裹需要需要的标签,又不想显示包裹标签,可以使用template标签
v-if == true显示
v-if == false隐藏

(1)案例要求:点击按钮,改变显示的template标签。

(2)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(3)参考代码

<template>
  <div id="app">
    <template v-if="flag">
      <h1 style="color:red">你真美</h1>
    </template>
    <template v-else>
      <input type="text" value="你真帅" style=" font-size:36px;color:blue; font-weight: 900;text-align: center;"/>
      <br><br>
    </template>
    <button @click="changeFlag">修改</button>
  </div>
</template>
    

<script setup lang="ts">
import { ref } from "vue";

const flag = ref(true)

function changeFlag() {
  flag.value = !flag.value
}
</script>

3、案例 显示和隐藏dom节点

v-show == true 把dom节点显示
v-show == false 把dom节点隐藏(display:none)

(1)案例要求:点击按钮,显示或隐藏h1标签。

(2)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端
教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(3)参考代码

<template>
  <div id="app">
    <p v-show="isShow">我会隐身</p>
    <button @click="isShow = !isShow">点击显示隐藏</button>
  </div>
</template>
    

<script setup lang="ts">
import { ref, watch } from "vue"
const isShow = ref(true)

</script>

4、案例 使用v-for显示专业列表

(1)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(2)参考代码

<template>
  <div id="app">
    <ul>
      <li v-for='item in majors'>{{ item }}</li>
    </ul>
  </div>
</template>
    

<script setup lang="ts">
const majors = ['计算机科学与技术', '数字媒体技术', '物联网工程', '软件工程', '网络工程', '人工智能']

</script>

<style>
ul {
  list-style: none;
}

li {
  list-style-type: square;
  list-style-position: outside;
  text-align: left;
  font-size: large;
  padding: 5px;
}
</style>

5、案例 使用v-for循环数字和字符

(1)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(2)参考代码

<template>
  <div id="app">
    <ul>
      <li v-for="num in 5">{{ num }}</li>
    </ul>
    <p v-for="str in 'computer'">{{ str }}</p>
  </div>
</template>   

6、案例 使用v-for显示专业列表

(1)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

(2)参考代码

<template>
  <el-select v-model="value" class="m-2" placeholder="Select" size="large">
    <el-option v-for="item in majors" :key="item.value" :label="item.label" :value="item.value" />
  </el-select>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

// const value = ref('')
const value = ref('1')
const majors = [
  {
    value: '1',
    label: '计算机科学与技术',
  },
  {
    value: '2',
    label: '数字媒体技术',
  },
  {
    value: '3',
    label: '物联网工程',
  },
  {
    value: '4',
    label: '人工智能',
  },
  {
    value: '5',
    label: '软件工程',
  },
]
</script>

7、案例 使用v-for完成todos案例

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端
教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端

<script setup lang="ts">
import { ref, reactive } from 'vue'

const  id = ref(0)
const  newTodo = ref('')
// reactive作用:定义一个对象类型的响应式数据(基本数据类型用ref函数)
const  todos = reactive([
  { id: id.value++, text: '番茄炒蛋' },
  { id: id.value++, text: '醋溜土豆丝' },
  { id: id.value++, text: '香菇炒肉' }
])

function addTodo() {
  todos.push({ id: id.value++, text: newTodo.value })
  newTodo.value = ''
}
function removeTodo(index: number) {
  todos.splice(index, 1);
}
</script>

<template>
  <!-- @submit.prevent .prevent 表示提交以后不刷新页面, -->
  <form @submit.prevent="addTodo">
    <input v-model="newTodo" />
    <button>Add Todo</button>
  </form>
  <ul>
    <li v-for="(todo, index)  in todos" :key="todo.id">
      {{ todo.text }}
      <button @click="removeTodo(index)">删除</button>
    </li>
  </ul>
</template>

8、案例 使用v-for表格中显示对象数组

(1)运行效果

教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for),javascript,vue.js,前端文章来源地址https://www.toymoban.com/news/detail-675465.html

(2)参考代码

<template>
  <table>
    <tr>
      <th>班级</th>
      <th>姓名</th>
      <th>性别</th>
      <th>年龄</th>
    </tr>
    <tr v-for="(item,index ) in students" :key="index">
      <td>{{ item.grade }}</td>
      <td>{{ item.name }}</td>
      <td>{{ item.gender }}</td>
      <td>{{ item.age }}</td>
      <button v-on:click="del(index)">删除</button>
      <td></td>
    </tr>
  </table>
  <button @click="add">添加</button>
</template>

<script lang="ts" setup>
import { ref } from "vue";
let counter = 3

interface Student {
  grade: number
  name: string
  gender: string
  age: number
}

let students = ref<Student[]>([{
  grade: 1,
  name: '张三',
  gender: '男',
  age: 20
}, {
  grade: 2,
  name: '李四',
  gender: '女',
  age: 21
}]);


function add() {
  var student = {
    grade: counter++,
    name: '新人',
    gender: '女',
    age: 18
  }
  students.value.push(student);
}

function del(index: number) {
  students.value.splice(index, 1);
}
</script>



到了这里,关于教程3 Vue3条件渲染指令(v-if、v-else、v-else-if、v-show、v-for)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HarmonyOS-if-else-条件渲染

    ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。 说明 从API version 9开始,该接口支持在ArkTS卡片中使用。 支持if、else和else if语句。 if、else if后跟随的条件语句可以使用状态变量。 允许在容器组件内使用,通过条件

    2024年01月23日
    浏览(49)
  • HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制if/else条件渲染

    ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。说明:从API version 9开始,该接口支持在ArkTS卡片中使用。 一、使用规则 支持if、else和else if语句。 if、else if后跟随的条件语句可以使用状态变量。 允许在容器组件内使

    2024年02月12日
    浏览(40)
  • vue中使用element ui的el-table在el-table-column下使用slot插槽v-if条件渲染没生效或者混乱

    vue 引入element ui中的el-table组件时,在el-table-column下使用作用域插槽,通过v-if条件来动态显示某些元素,发现有的条目渲染没生效或者混乱。如: 原因:vue虚拟dom机制,会尽量复用已存在相同节点元素而不会重新渲染,导致使用v-if没有达到预期效果 解决方法:使用div元素将

    2024年02月11日
    浏览(47)
  • 鸿蒙Harmony应用开发—ArkTS-if/else:条件渲染

    ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。 说明: 从API version 9开始,该接口支持在ArkTS卡片中使用。 支持if、else和else if语句。 if、else if后跟随的条件语句可以使用状态变量。 允许在容器组件内使用,通过条

    2024年04月25日
    浏览(38)
  • C 语言教程:条件和 if...else 语句

    您已经学习过 C 语言支持数学中的常见逻辑条件: 小于: a b 小于或等于: a = b 大于: a b 大于或等于: a = b 等于: a == b 不等于: a != b 您可以使用这些条件来根据不同的决策执行不同的操作。 C 语言具有以下条件语句: 使用 if 来指定要执行的代码块,如果指定的条件为真

    2024年02月04日
    浏览(57)
  • vue: v-show 和 v-if 指令控制盒子的显示隐藏

    1. v-show     语法:  v-show=\\\"布尔值\\\"    (true显示, false隐藏)     原理:  实质是在控制元素的 css 样式,  `display: none;` 2. v-if       语法: v-if=\\\"布尔值\\\"   (true显示, false隐藏)     原理:  实质是在动态的 创建 或者 删除 元素节点 应用场景:          1. 如果是频繁的切换显

    2024年02月09日
    浏览(59)
  • 微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明

    1.1. 语法格式 (wx:if, wx:elif ,wx:else) 当condition条件为true时,代码块渲染显示,为false时,代码块不进行渲染. 可以结合 wx:elif=“{{condition}}” 和 wx:else来进行判断 1.2. block标记 可以使用block标记,一次性的控制多个组件的显示与隐藏,block标记本身并不进行渲染。 block并不是一个组

    2024年02月16日
    浏览(48)
  • python条件判断语句(if else)

            python中判断语句的基本结构由if和else组成,当if后面的条件为真时,执行if下面的语句;当if后面的条件为假时,执行else下面的语句。这里条件的真假都是用bool值来作为依据的,我们知道比较运算、成员运算、身份运算返回的结果都是bool值。所以比较运算、成员运算

    2024年02月09日
    浏览(60)
  • vue3-条件渲染

    v-if v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。 v-else 你也可以使用 v-else 为 v-if 添加一个“else 区块”。 一个 v-else 元素必须跟在一个 v-if 或者 v-else-if 元素后面,否则它将不会被识别。 v-else-if v-else-if 提供的是相应于 v-if 的“

    2024年01月16日
    浏览(46)
  • Python- 条件语句if-elif-else

    目录 一、一个简单示例 二、条件测试 1. 检查是否相等 2. 检查是否相等时忽略大小写 3. 检查是否不相等 4. 数值比较 5. 检查多个条件 6. 检查特定值是否包含在列表中 7. 检查特定值是否不包含在列表中 8. 布尔表达式 三、if语句 1. 简单的if语句 2. if-else语句 3. if-elif-else结构 4

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包