VueJs之判断与循环

本文详细介绍了Vue.js中用于条件渲染的v-if、v-else、v-else-if及v-show指令,以及循环渲染的v-for指令用法。通过实例展示了如何根据条件展示元素,如何循环遍历数组、对象和整数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A:判断语句

1.v-if  / v-else  /  v-else-if

<div id="app">
    <div v-if="Math.random() > 0.5">
      Sorry
    </div>
    <div v-else>
      Not sorry
    </div>
</div>
    
<script>
new Vue({
  el: '#app'
})

2.PS: v-show 指令来根据条件展示元素(如:<h1 v-show="ok">Hello!</h1>  ok:true)

 

B:循环语句

1.循环使用 v-for 指令,需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名

2.key:value形式  则以 (value, key) in object 循环  ,再取值赋值

<div id="app">
  <ul>
    <li v-for="(value, key) in object">
    {{ key }} : {{ value }}
    </li>
  </ul>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    object: {
      name: '菜鸟教程',
      url: 'http://www.runoob.com',
      slogan: '学的不仅是技术,更是梦想!'
    }
  }
})
</script>

3.index : key :value       

 <li v-for="(value, key, index) in object">
     {{ index }}. {{ key }} : {{ value }}
 </li>

4.PS: v-for  也可以循环整数   

<li v-for="n in 10">
     {{ n }}
</li>

 

转载于:https://www.cnblogs.com/assistants/p/10302414.html

/** * 路由多级嵌套数组处理成一维数组 * @param arr 传入路由菜单数据数组 * @returns 返回处理后的一维路由菜单数组 */ export function formatFlatteningRoutes(arr: any) { if (arr.length <= 0) return false; for (let i = 0; i < arr.length; i++) { if (arr[i].children) { arr = arr.slice(0, i + 1).concat(arr[i].children, arr.slice(i + 1)); } } return arr; } /** * 一维数组处理成多级嵌套数组(只保留二级:也就是二级以上全部处理成只有二级,keep-alive 支持二级缓存) * @description isKeepAlive 处理 `name` 值,进行缓存。顶级关闭,全部不缓存 * @link 参考:https://v3.cn.vuejs.org/api/built-in-components.html#keep-alive * @param arr 处理后的一维路由菜单数组 * @returns 返回将一维数组重新处理成 `定义动态路由(dynamicRoutes)` 的格式 */ export function formatTwoStageRoutes(arr: any) { if (arr.length <= 0) return false; const newArr: any = []; const cacheList: Array<string> = []; arr.forEach((v: any) => { if (v.path === '/') { newArr.push({ component: v.component, name: v.name, path: v.path, redirect: v.redirect, meta: v.meta, children: [] }); } else { // 判断是否是动态路由(xx/:id/:name),用于 tagsView 等中使用 // 修复:https://gitee.com/lyt-top/vue-next-admin/issues/I3YX6G if (v.path.indexOf('/:') > -1) { v.meta['isDynamic'] = true; v.meta['isDynamicPath'] = v.path; } newArr[0].children.push({ ...v }); // 存 name 值,keep-alive 中 include 使用,实现路由的缓存 // 路径:/@/layout/routerView/parent.vue if (newArr[0].meta.isKeepAlive && v.meta.isKeepAlive) { cacheList.push(v.name); const stores = useKeepALiveNames(pinia); stores.setCacheKeepAlive(cacheList); } } }); return newArr; }
最新发布
03-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值