经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
零基础入门Vue之To be or not to be——条件渲染
来源:cnblogs  作者:StarVik  时间:2024/2/5 9:59:54  对本文有异议

温故

上一节:零基础入门Vue之皇帝的新衣——样式绑定

在前面的内容能了解到,Vue不仅仅能进行数据渲染还可以对样式进行绑定

并且他能随意的切换样式,但Vue的初衷就是尽量少让使用者操作dom节点

加入你要让指定dom显示或者不显示,该怎么办呢?以目前的东西来说,不拿到dom节点还是做不到的

因此,Vue提供了另外的办法去解决它:条件渲染


条件渲染之v-if

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

从官网上看,这个v-if指令理解起来也不难,就是说,想要显示就

  1. <div v-if="true"></div>

不想显示就

  1. <div v-if="false"></div>

v-if的基本用法

可以根据前面提到的原理,用一个变量去控制,毕竟双引号里面可以写js表达式

基于这个原理,实现一个点击按钮显示文字,再点击文字消失,再点击显示以此类推的效果


v-else与v-else-if

众所周知,在变成语言里面分支是依赖于if-else或者是if-else-if来控制的(switch、三目暂且不论)

Vue也提供了这一种方式,允许根据一定条件下来控制多个dom节点的显示或不显示

PS:如果要使用这种办法,dom节点必须连在一起不能拓展 且 当条件为false的时候这个dom会被删除,但为true的时候会添加进去

请看如下例子:利用Vue的条件渲染,实现判断密码是否输入错误、输入为空、输入正确,并且给出提示

具体代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <script src="./vue.js"></script>
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="root">
  11. <input type="password" v-model="pwd" placeholder="enter you pwd."><br/>
  12. <span v-if="pwd==''">密码不能为空</span>
  13. <span v-else-if="pwd!=='123456'">密码错误</span>
  14. <span v-else >密码正确</span>
  15. </div>
  16. </body>
  17. <script>
  18. let vm = new Vue({
  19. el:"#root",
  20. data:{
  21. pwd:""
  22. },
  23. })
  24. </script>
  25. </html>

条件渲染之v-show

v-show与v-if不同,v-show是直接让节点不显示,但并不是删除

并且v-show没有其他的else,他就只有一个true显示false不显示

看代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <script src="./vue.js"></script>
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="root">
  11. <span v-show="show">Hello world</span><br/>
  12. <button @click="show=!show">点我显示文字</button>
  13. </div>
  14. </body>
  15. <script>
  16. let vm = new Vue({
  17. el:"#root",
  18. data:{
  19. show:false
  20. },
  21. })
  22. </script>
  23. </html>

我比较懒,直接搬了v-if的基本使用的代码,v-show的用法只有这一点,其他的也无非是在""里面写变量去控制显示不显示

打开浏览器的开发者调试工具可以看到当show为false时这个节点存在但他被隐藏了,但v-if是直接删除

ps:v-show比较适用于变动比较频繁的场合,变动不需要渲染很多东西


The End

结束啦~

原文链接:https://www.cnblogs.com/Star-Vik/p/18006987

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号