像上述的详情页面,可能每个字段都会在页面写死,这样会影响页面结构,代码可读性较差,可维护性也不好,冗余的结构和样式代码也会大大增加。

因此这些详情页面,应该通过动态遍历来实现:

父组件
<template><div class="dynamic-detail"><div class="content-container"><common-detailv-for=" (item, idx) in testArr ":key="idx":item-data="item"></common-detail></div></div>
</template><script>
import CommonDetail from '@/components/DetailItem'
export default {name: 'DynamicDetail',components: {CommonDetail},data () {return {testObj: {id: 778899,permission: 'hmk'},testArr: [{label: '口号',value: '今天不努力,明天拧螺丝',name: '口号'},{label: '公司',value: 'XXXX',name: '公司',style: { color: 'skyblue' },clickFn: () => {console.log(this.testObj.id)}},{label: '每天一个小技巧',value: '多学多看多总结',name: '每天一个小技巧',formatFn: () => {if (this.testObj.permission) {return '多学多看多总结'} else {return '没权限'}}},{label: '时间',value: '2021-11-23',name: '时间',formatFn () {if (this.value) {console.log(this.value)return new Date(this.value)}}},]}}
}
</script><style scoped lang="less">
.dynamic-detail {position: relative;background-color: #f1f1f1;height: 100vh;overflow: hidden;.content-container {margin: 8px;border-radius: 8px;padding: 12px 16px;background-color: #fff;}
}
</style>
子组件
<template><div class="detail-item"><div class="label">{{ itemData.label }}</div><divclass="content":style="itemData.style"@click.stop="itemData.clickFn && itemData.clickFn()">{{ itemData.formatFn ? itemData.formatFn() : itemData.value }}</div></div>
</template><script>
export default {name: 'CommonDetail',props: {itemData: {type: Object,default: {}}},methods: {formatFn (itemData) {}}
}
</script><style scoped lang="less">
.detail-item {margin-bottom: 12px;.label {color: #999999;font-size: 14px;line-height: 20px;}.content {margin-top: 4px;font-size: 14px;line-height: 20px;color: #333333;}
}
</style>

vue实现动态详情页面相关推荐

  1. 前端Vue项目——课程详情页面实现

    一.详情页面路由跳转 应用 Vue Router 编程式导航通过 this.$router.push() 来实现路由跳转. 1.绑定查看详情事件 修改 src/components/Course/Co ...

  2. Vue—keepAlive 动态管理页面缓存

    简介 <keep-alive>是Vue的内置组件,当他包裹组件时,会对组件进行缓存,不去销毁组件. 首次进入页面时,会触发mounted和activated钩子,当页面被缓存下来后,进入页 ...

  3. Vue前端购物详情页面

    提示:Vue属于前端框架 前言 提示:这里可以添加本文要记录的大概内容: .Vue.js是用于构建交互式的 Web 界面的库. 2.它提供了 MVVM数据绑定和一个可组合的组件系统,具有简单.灵活的A ...

  4. Vue中动态设置页面title

    前言 更多内容,请访问我的 个人博客. 安装依赖 npm install vue-wechat-title --save 复制代码 在mian.js中引入 //设置title import VueWe ...

  5. vue uniapp 动态设置页面背景图

    在uniapp中的背景图需要动态变换 一般结合后台返回数据渲染 很简单 但是每次都记不住 自己写写加深印象 这里是简单的html 代码 <view class="loginBg&quo ...

  6. 【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

    开始前,请先完成圆梦宝典中滚动公告栏的开发,详见 [微信小程序-原生开发]实用教程 08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据 ...

  7. 基于Vue+SpringCloudAlibaba微服务电商项目实战-商品服务-015:亿万级别商品详情页面实现动态优化

    015:亿万级别商品详情页面实现动态优化 1 亿万级别商品详情页面如何设计 2 使用Nginx缓存商品详情页面 3 使用FreeMarker生成静态化模板页面 4 openresty+lua实现亿级别 ...

  8. 11.12-15.书籍详情页面的静态实现和动态数据绑定(有重要知识)

    Chapter:11.前端页面开发 11.12-15.书籍详情页面的静态实现和动态数据绑定(有重要知识) 展示层代码 ​ 太长了,为了避免影响阅读体验放后面了,主要就是 html 结构,css 样式, ...

  9. 2021-12-05 vue移动端卖座电影项目(六) 为详情页面Detail.vue获取后台数据并设置样式

    1.带着id传到详情页面中 效果:点击任一电影,跳转进Detail.vue页面时后面自动拼接上电影的filmId http://localhost:8081/#/Detail/6112 http:// ...

最新文章

  1. SQL语句正常,在Navicat中运行正常,但是在后台运行,无法查询出数据,也不报错...
  2. spring 通过工厂方法配置Bean
  3. 根据Word表格自动生成SQL数据库脚本的VBScript代码
  4. Android中状态栏的隐藏
  5. canvas写的一个刮奖效果
  6. python之路day9_亮仔的Python之路Day9——Python知识体系重组
  7. NTP服务器时间同步
  8. Android推荐的几本书
  9. 随手小记:都是反着的
  10. SAP License:SAP Business One系统功能
  11. springBoot方法上面添加@Transactional注解与类上面添加@Transactional注解的区别
  12. activiti 工作流_activiti-boot快速开发工作流框架
  13. STM8S103之独立看门狗和窗口看门狗
  14. AnySdk渠道列表
  15. 美团买菜助手来了,自动点击,助你买菜
  16. 计算机语言VLOOKUP,R下如何实现VLOOKUP函数功能
  17. \(^_^)/ Effective java
  18. 中小企业网管管理完全篇 [转]
  19. 微软 2020 财年营收突破 1 万亿人民币、净利润 3099 亿元
  20. 12种数据量纲化处理方式

热门文章

  1. 【java文本处理】实现一个简单的小说文本阅读器(分页、翻页、页码跳转)
  2. 快速提高微信公众号文章的阅读量的必备神器——阅读红包!
  3. 小程序-----小程序开发工具使用及流程文档说明
  4. OpenLayers基础教程——要素样式的创建
  5. iOS 直播类APP开发流程解析
  6. 一、考研数据结构笔记——引言及目录
  7. Objective-C中强项和弱项之间的差异
  8. Java遍历Map的五种方式
  9. 树莓派驱动6轴传感器MPU6500与SPI初体验(二)
  10. ILOG CPLEX Optimization Studio 编写 TSP问题