components文件夹下 .vue文件就是专门编写模块化功能(如分页、轮播、导航等功能分模块化,实现重复利用和解耦,也利于热更新处理)
//分为三个部分
<template>
//template 模板(组件)
//编写页面某个功能 html 表签 +vue 语法
</template>
//第二部分
<script>
//处理数据 、事件绑定、组件注册
</script>
//第三部分
<style>
//样式处理
</style>
<template>
<ul id="for">
<li v-for="(item ,index) in items" >
<p>{{process}}-{{index}}-{{ item.typemsg }} - {{item.data.length}}</p>
<ol v-for="(items,indexs) in item.data" v-if="items.show">
<li>{{indexs}} - {{items.message}}</li>
</ol>
</li>
</ul>
</template>
<script>
export default {
data() {
//可以请求后台接口获取数据
return {
process:"for循环",
items: [
{
typemsg:"蔬菜类",
data:[
{ message: '白菜' ,show:false}, { message: '青椒' ,show:true},
{ message: '南瓜' ,show:false}, { message: '丝瓜' ,show:true},
{ message: '黄瓜' ,show:true}, { message: '山药' ,show:true},
{ message: '蒜苗' ,show:true}, { message: '洋葱' ,show:true}
]
},
{
typemsg:"水果类",
data:[
{ message: '苹果' ,show:false}, { message: '凤梨' ,show:true},
{ message: '西瓜' ,show:false}, { message: '荔枝' ,show:true},
{ message: '枇杷' ,show:true}, { message: '桂圆' ,show:true},
{ message: '香蕉' ,show:true}, { message: '柠檬' ,show:true}
]
},
{
typemsg:"日常用品",
data:[
{ message: '洗发露' ,show:false}, { message: '纸巾' ,show:true},
{ message: '沐浴露' ,show:false}, { message: '杯子' ,show:true},
{ message: '牙膏' ,show:true}, { message: '餐具' ,show:true},
{ message: '毛巾' ,show:true}, { message: '保鲜膜' ,show:true}
]
},
{
typemsg:"零食",
data:[
{ message: '薯片' ,show:true}, { message: '可乐' ,show:true},
{ message: '果醋' ,show:true},{ message: '奶酪' ,show:true}
]
}
]
}
}
}
</script>
<style>
#for{
color: red;
font-size: 20px;
}
</style>
在app.vue引用 for.vue
效果
与传统的js 相比 vue 的优势直接操作页面 dom
如果用js 实现 图上效果大约最少要写20行左右的 js 、也不利于二次改动,简洁度灵活度如不vue
vue的实现只需要一行
v-for="(items,indexs) in item.data" v-if="items.show"