我正在参加 CodeBuddy「首席试玩官」内容创作大赛,文中所用的 CodeBuddy 下载地址保持不变:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴
到首页、个人中心、分类查找页面都已经落地之后,我发现少了最关键的一环——图书详情页。理想中,点击某本书时,页面应当展示完整的封面、书籍简介、相关推荐、用户评论,以及底部的各种操作按钮;但我之前只是用一个 Toast 提示代替,远远不够友好。于是我决定借助 CodeBuddy,分两件事一并搞定:一是快速生成图书详情页,二是把 JS 和 SCSS 从 Vue 文件里彻底剥离,后续维护才能更清爽。
我先在 pages
目录里搜索,确认项目中并没有 book-detail
文件夹。接着,和 CodeBuddy 一起制定了这样一个“三步走”计划:
pages/book-detail/
下,分别新建 book-detail.vue
、book-detail.js
、book-detail.scss
三个文件;pages.json
里注册新路由,同时把“首页”、“分类”、“个人中心”三个页面里原先的跳转逻辑,都指向 /pages/book-detail/book-detail
;<script>
和 <style>
块里的逻辑与样式,彻底挪出到独立文件,Vue 文件里只保留引入语句。这波操作就像给房子先搭起框架,再慢慢做装修。
分类页 (category.vue
) 里已经用过:
uni.navigateTo({ url: '/pages/book-detail/book-detail?id=' + book.id })
无需改动;但首页和个人中心里,我原先只用 uni.showToast
提示。为了让体验顺畅,必须改成导航跳转。CodeBuddy 一下子给了精准的脚本——把这一段:
viewBookDetail(book) {
uni.showToast({ title: `查看《${book.title}》详情`, icon: 'none' });
}
一键替换成:
viewBookDetail(book) {
uni.navigateTo({ url: `/pages/book-detail/book-detail?id=${book.id}` });
}
修改后,无论在哪点书,都能立刻进入详情页,感受一下“一气呵成”的爽快。
book-detail.js
的妙用在 book-detail.js
中,CodeBuddy 已经帮我承包了:数据请求、options.id
解析、生命周期钩子、按钮点击事件(“加入书架”“立即购买”“阅读进度”)的 stub,都一并写好了。相比之前把所有逻辑写进 <script>
,现在看得更清晰,日后要增删功能,直接改这一份就行了,不用再在 Vue 文件里翻来覆去。
样式方面,我在 book-detail.scss
里借鉴了 CodeBuddy 的建议,用了 SCSS 变量、嵌套写法,把主题色、卡片阴影、响应式布局、玻璃拟态背景等都分门别类写明。示例:
$primary-gradient: linear-gradient(135deg, #4a0072, #2d0a5e);
.book-detail {
.header {
background: $primary-gradient;
/* 其他样式 */
}
.cover {
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.content {
backdrop-filter: blur(10px);
}
}
这样一来,查看或调整样式时,只需打开这一份 SCSS 文件,不用担心在单文件组件里被行内样式缠住。
最终的 book-detail.vue
极简到让人惊喜:
<template>…结构化的 HTML …</template>
<script src="./book-detail.js"></script>
<style lang="scss" src="./book-detail.scss"></style>
模板、逻辑、样式各司其职,想加“相关推荐”也很简单:在 JS 或 SCSS 里各加一行代码,然后在模板里插入 <Recommend />
即可,开发效率瞬间提升。
顺便提一句,Windows 下 mkdir -p
不支持,于是我卡在命令行好一会儿,幸亏 CodeBuddy 提醒:
New-Item -ItemType Directory -Path static/book-covers,static/avatars -Force
这下就算在非 Unix 终端里,也能顺利批量建目录。
在 pages.json
中已新增:
{
"path": "pages/book-detail/book-detail",
"style": { "navigationStyle": "custom" }
}
我依次从首页、分类页、个人中心点进来,封面、书名、作者、评分、简介都能正确渲染,底部“加入书架”“开始阅读”按钮也能触发相应事件,一气呵成。
这一次,把 JS、SCSS 从 Vue 组件里剥离出来的体验非常棒。无需再在单文件里左右滚动查找逻辑与样式,后期想切换主题或重构功能,也只要打开对应的独立文件即可。CodeBuddy 不仅帮我写好了代码,还把“工程化思维”一并带到了项目里。
到此,我的图书管理系统终于拥有了完整的详情页,首页、分类页、个人中心页与之无缝衔接,整体风格保持一致。下一步,我计划接入真实后端、搭建评论系统、加入社交分享,让它焕发真正的生命力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有