Vue-11-条件渲染

简介: Vue-11-条件渲染

条件渲染


当我们需要根据不同的条件对前端页面进行不同的渲染时,我们就需要用到条件渲染。Vue 为我们提供了 v-if、v-else-if、v-else 方法。


实践


代码


<!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">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        请输入成绩等级:<input v-model="type">
        <br>
        <p>你输入的内容是:{{ type }}</p>
        <div v-if="type=='C'">
            <h1>及格</h1>
        </div>
        <div v-else-if="type=='A'">
            <h1>优秀</h1>
        </div>
        <div v-else>
            <h1>不及格</h1>
        </div>
    </div>
    <script>
        app = new Vue({
            el: "#app",
            data: {
                type: "C"
            }
        })
    </script>
</body>
</html>
复制代码


页面效果


初始:


网络异常,图片无法展示
|


输入 A 之后:

网络异常,图片无法展示
|


输入其他值:

网络异常,图片无法展示
|


Tips


  1. v-model 实现了输入框内容和数据的绑定。
  2. v-if 等实现了根据数据的不同值展示不同的内容。
  3. v-if 模板中双引号内是单引号。


条件渲染的另一种方式


如上的形式是在页面中直接写上了 v-if 来进行条件判断,这样不是很优雅,我们尝试使用字典,根据不同的 key 来渲染不同的 value 来进行改造。


代码


<!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">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="app">
        请输入成绩等级:<input v-model="type" placeholder="请输入正确的等级!(A,B,C,D)">
        <br>
        <p>你输入的内容是:{{ type }}</p>
       <h2>{{ res[type] }}</h2>
    </div>
    <script>
        app = new Vue({
            el: "#app",
            data: {
                type: "C",
                res: {"C":"及格","A":"优秀","B":"优良","D":"不及格"}
            }
        })
    </script>
</body>
</html>
复制代码


页面效果


初始:


网络异常,图片无法展示
|


输入 A

网络异常,图片无法展示
|


输入 D

网络异常,图片无法展示
|


我们发现针对可以确定的条件和结果,使用字典的方式,页面代码更优雅。不过,v-if 使用起来也是非常不多呢!


以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

相关文章
|
2月前
|
JavaScript
vue异步渲染
vue异步渲染
|
17天前
|
监控 JavaScript 前端开发
Vue 异步渲染
【10月更文挑战第23天】Vue 异步渲染是提高应用性能和用户体验的重要手段。通过理解异步渲染的原理和优化策略,我们可以更好地利用 Vue 的优势,开发出高效、流畅的前端应用。同时,在实际开发中,要注意数据一致性、性能监控和调试等问题,确保应用的稳定性和可靠性。
|
2月前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
|
2月前
|
人工智能 JavaScript 索引
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
这篇文章讨论了在Vue中进行列表渲染时遇到的“Duplicate keys detected”错误。这个错误通常发生在使用 `v-for` 指令渲染列表时,如果没有为每个循环项指定一个唯一的 `key` 属性,或者指定的 `key` 属性值重复了。文章提供了导致错误的原始代码示例,并给出了修正后的代码,通过在 `key` 绑定中加入索引确保 `key` 的唯一性。此外,文章还解释了为什么需要唯一 `key` 以及如何解决这个问题。
Duplicate keys detected: This may cause an update error.【Vue遍历渲染报错的解决】
|
2月前
|
JavaScript 前端开发 UED
组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
该文章详细介绍了如何使用Vue3结合TypeScript来开发全局Header组件和列表数据渲染组件ColumnList,并提供了从设计到实现的完整步骤指导。
|
3月前
|
JavaScript 算法 前端开发
"揭秘Vue.js的高效渲染秘诀:深度解析Diff算法如何让前端开发快人一步"
【8月更文挑战第20天】Vue.js是一款备受欢迎的前端框架,以其声明式的响应式数据绑定和组件化开发著称。在Vue中,Diff算法是核心之一,它高效计算虚拟DOM更新时所需的最小实际DOM变更,确保界面快速准确更新。算法通过比较新旧虚拟DOM树的同层级节点,递归检查子节点,并利用`key`属性优化列表更新。虽然存在局限性,如难以处理跨层级节点移动,但Diff算法仍是Vue高效更新机制的关键,帮助开发者构建高性能Web应用。
67 1
|
3月前
|
JavaScript
Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)
这篇博客文章详细介绍了Vue中列表渲染的基础知识、`v-for`指令的使用、`key`的原理和列表过滤的实现。通过代码实例和测试效果,展示了如何遍历数组和对象、使用`key`属性优化渲染性能,以及如何实现列表的动态过滤功能。
Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)
|
3月前
|
JavaScript 前端开发
Vue学习之--------绑定样式、条件渲染、v-show和v-if的区别(2022/7/12)
这篇博客文章讲解了Vue中绑定样式和条件渲染的方法,包括类样式绑定的不同写法、`v-show`和`v-if`的条件渲染区别以及它们的使用场景和特点,并通过代码实例和测试效果来展示具体应用。
Vue学习之--------绑定样式、条件渲染、v-show和v-if的区别(2022/7/12)
|
3月前
|
JavaScript UED
强制 Vue 重新渲染组件的5种方法,解决你开发过程中数据和视图无法同步的Bug。
强制 Vue 重新渲染组件的5种方法,解决你开发过程中数据和视图无法同步的Bug。