猜你喜欢模块(通用组件)
1.准备组件(通用组件)
2.定义组件类型
3.准备scroll-view滚动容器
4.设置page 和scroll-view样式
猜你喜欢静态结构:猜你喜欢是一个通用组件 XtxGuess,多个页面会用到该组件,存放到 src/components 目录中。
<script setup lang="ts"> // </script> <template> <!-- 猜你喜欢 --> <view class="caption"> <text class="text">猜你喜欢</text> </view> <view class="guess"> <navigator class="guess-item" v-for="item in 10" :key="item" :url="`/pages/goods/goods?id=4007498`" > <image class="image" mode="aspectFill" src="https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/goods_big_1.jpg" ></image> <view class="name"> 德国THORE男表 超薄手表男士休闲简约夜光石英防水直径40毫米 </view> <view class="price"> <text class="small">¥</text> <text>899.00</text> </view> </navigator> </view> <view class="loading-text"> 正在加载... </view> </template> <style lang="scss"> :host { display: block; } /* 分类标题 */ .caption { display: flex; justify-content: center; line-height: 1; padding: 36rpx 0 40rpx; font-size: 32rpx; color: #262626; .text { display: flex; justify-content: center; align-items: center; padding: 0 28rpx 0 30rpx; &::before, &::after { content: ''; width: 20rpx; height: 20rpx; background-image: url(@/static/images/bubble.png); background-size: contain; margin: 0 10rpx; } } } /* 猜你喜欢 */ .guess { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 0 20rpx; .guess-item { width: 345rpx; padding: 24rpx 20rpx 20rpx; margin-bottom: 20rpx; border-radius: 10rpx; overflow: hidden; background-color: #fff; } .image { width: 304rpx; height: 304rpx; } .name { height: 75rpx; margin: 10rpx 0; font-size: 26rpx; color: #262626; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .price { line-height: 1; padding-top: 4rpx; color: #cf4444; font-size: 26rpx; } .small { font-size: 80%; } } // 加载提示文字 .loading-text { text-align: center; font-size: 28rpx; color: #666; padding: 20rpx 0; } </style>
这里我们导入的时候是自动导入之前写过的,在这里
这个要再写
我们来看一下现在的效果
但是我们现在XtxGuess没有数据类型,我们之前轮播图也定义过,我们现在定义以下
参考这个写出下面的:
看下面是定义成功的意思
我们下面为了更好的体验感
这里自定义导航栏我们要让向下滑动的时候也固定再页面上,下面是解决方法(滚动容器组件):就这两步就可以