展示频道分类的弹出层, 使用 Popup弹出层 组件
<van-popup v-model="isShow" position="bottom" :style="{ height: '100%' }" closeable close-icon-position="top-left" >
</van-popup>
<!-- v-model给一个变量来控制弹出层的显示与隐藏-->
频道编辑页面
使用单元格 <van-cell></van-cell> 和宫格 <van-grid></van-grid> 来完成布局
我的频道
通过父子通信 (给父组件添加一个自定义事件,在子组件用props来接收) 把父组件中 "我的频道" 的数据传递给子组件, 在子组件中声明一个变量来接收值, 并通过 v-for 来循环遍历, 渲染出来
为了让选中的频道实现高亮效果, 可以把父组件定义的实现高亮的变量传给子组件, 给对应项加一个类名判断, 如果 遍历项索引 全等 父组件传来的变量 , 则该频道显示高亮
推荐频道
没有推荐频道的数据接口, 则
"所有频道列表" - "我的频道" = 剩余的频道列表(即推荐列表)
封装计算属性来筛选推荐频道列表, 用 filter 方法遍历所有频道的列表, 再用 find 方法遍历我的频道的列表, 返回我的频道列表中的id 不等于所有频道中列表的id, 得到的新数组就是剩余的频道
添加频道
给推荐频道列表的每一项注册点击事件, 将获取的频道项添加的我的频道中, 因为获取的推荐频道使用了计算属性, 所以它是动态删除的
编辑频道 (删除)
使用 splice 方法传入对应频道的索引号来删除, 再用子传父技术把数据传给父组件
因为当前选中频道高亮是通过判断索引号来实现, 所以当删除的在高亮频道之前,删除之后会导致高亮后移,不在原频道上, 可以通过判断索引号的大小来改变高亮所需索引号的值(不能直接赋值,因为在子组件修改父组件传来的值会报错, 可以用 "this.index-1" 来代替)