热门推荐的准备工作
就是点击这个部分会再进入不同页面
1.新建页面-》静态结构-》跳转页面传参-》获取页面参数-》动态设置不同标题
我们先来准备动态设置标题,先新建页面,这里为了生成同名文件夹像下面这么设置
选择新建uiapp页面
下面开始静态结构的书写,代码如下
// /src/pages/hot/hot.vue <script setup lang="ts"> // 热门推荐页 标题和url const hotMap = [ { type: '1', title: '特惠推荐', url: '/hot/preference' }, { type: '2', title: '爆款推荐', url: '/hot/inVogue' }, { type: '3', title: '一站买全', url: '/hot/oneStop' }, { type: '4', title: '新鲜好物', url: '/hot/new' }, ] </script> <template> <view class="viewport"> <!-- 推荐封面图 --> <view class="cover"> <image src="http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-20/84abb5b1-8344-49ae-afc1-9cb932f3d593.jpg" ></image> </view> <!-- 推荐选项 --> <view class="tabs"> <text class="text active">抢先尝鲜</text> <text class="text">新品预告</text> </view> <!-- 推荐列表 --> <scroll-view scroll-y class="scroll-view"> <view class="goods"> <navigator hover-class="none" class="navigator" v-for="goods in 10" :key="goods" :url="`/pages/goods/goods?id=`" > <image class="thumb" src="https://yanxuan-item.nosdn.127.net/5e7864647286c7447eeee7f0025f8c11.png" ></image> <view class="name ellipsis">不含酒精,使用安心爽肤清洁湿巾</view> <view class="price"> <text class="symbol">¥</text> <text class="number">29.90</text> </view> </navigator> </view> <view class="loading-text">正在加载...</view> </scroll-view> </view> </template> <style lang="scss"> page { height: 100%; background-color: #f4f4f4; } .viewport { display: flex; flex-direction: column; height: 100%; padding: 180rpx 0 0; position: relative; } .cover { width: 750rpx; height: 225rpx; border-radius: 0 0 40rpx 40rpx; overflow: hidden; position: absolute; left: 0; top: 0; } .scroll-view { flex: 1; } .tabs { display: flex; justify-content: space-evenly; height: 100rpx; line-height: 90rpx; margin: 0 20rpx; font-size: 28rpx; border-radius: 10rpx; box-shadow: 0 4rpx 5rpx rgba(200, 200, 200, 0.3); color: #333; background-color: #fff; position: relative; z-index: 9; .text { margin: 0 20rpx; position: relative; } .active { &::after { content: ''; width: 40rpx; height: 4rpx; transform: translate(-50%); background-color: #27ba9b; position: absolute; left: 50%; bottom: 24rpx; } } } .goods { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 0 20rpx 20rpx; .navigator { width: 345rpx; padding: 20rpx; margin-top: 20rpx; border-radius: 10rpx; background-color: #fff; } .thumb { width: 305rpx; height: 305rpx; } .name { height: 88rpx; font-size: 26rpx; } .price { line-height: 1; color: #cf4444; font-size: 30rpx; } .symbol { font-size: 70%; } .decimal { font-size: 70%; } } .loading-text { text-align: center; font-size: 28rpx; color: #666; padding: 20rpx 0 50rpx; } </style>
写完这个之后
我们呢到page.json里面看
可以看到已经自动导入路由了
看一下现在的效果
数据传参
动态设置标题
这里的onReady是我后添加的为了解决uni报错的问题,然后这里的!是为了统一类型,我们这里不存在非空所以用!
我们来看一下动态设置标题是否成功只需要点入这四个不同页面,发现上面的名字是动态变动的