当前位置:   article > 正文

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染!今天和大家分享一下,人气推荐栏目的前端页面如何渲染内容。


经历过上一次的,新鲜好物的栏目渲染之后,我们已经熟练了,vue3的接口调用,数据渲染到页面中的整体流程。接下来就是模仿流程操作一遍就行了。


1:打开接口文档,查询:人气推荐栏目的接口地址信息和参数,返回值对象信息等。

接口地址:“获取-人气推荐 - 柴柴老师的项目接口

***

 如图,地址信息和调用的方式已经清楚了。

返回的类型是json格式。

对象的具体内容也有了。我们就可以开始编辑代码了。


 

从index.vue可以看见,我们这一次编辑的组件文件名称,叫做:“HomeHot”

在首页面,内容里面,会看见很多内容,上期内容我们已经完成了新鲜好物的渲染操作。 


 

  1. <script setup>
  2. import HomePanel from './HomePanel.vue'
  3. import { findHotAPI } from '@/apis/home'
  4. import { ref,onMounted} from 'vue'
  5. const hotList = ref([])
  6. const getHotList = async () => {
  7. const res = await findHotAPI()
  8. hotList.value = res.result
  9. }
  10. onMounted(()=>getHotList())
  11. </script>
  12. <template>
  13. <!--人气推荐栏目-->
  14. <HomePanel title="人气推荐" sub-title="人气爆款 不容错过">
  15. <ul class="goods-list">
  16. <li v-for="item in hotList" :key="item.id">
  17. <RouterLink to="/">
  18. <img v-img-lazy :src="item.picture" alt="">
  19. <p class="name">{{ item.title }}</p>
  20. <p class="desc">{{ item.alt }}</p>
  21. </RouterLink>
  22. </li>
  23. </ul>
  24. </HomePanel>
  25. </template>
  26. <style scoped lang='scss'>
  27. .goods-list {
  28. display: flex;
  29. justify-content: space-between;
  30. height: 426px;
  31. li {
  32. width: 306px;
  33. height: 406px;
  34. transition: all .5s;
  35. &:hover {
  36. transform: translate3d(0, -3px, 0);
  37. box-shadow: 0 3px 8px rgb(0 0 0 / 20%);
  38. }
  39. img {
  40. width: 306px;
  41. height: 306px;
  42. }
  43. p {
  44. font-size: 22px;
  45. padding-top: 12px;
  46. text-align: center;
  47. text-overflow: ellipsis;
  48. overflow: hidden;
  49. white-space: nowrap;
  50. }
  51. .desc {
  52. color: #999;
  53. font-size: 18px;
  54. }
  55. }
  56. }
  57. </style>

以上内容就是,已经写好的,HomeHot的模板代码了。

里面可以看见,顶部是脚本,中间是模板,底部是样式。内容比较简单。不再解释了。不懂的可以留言。


 

我们自定义了一个方法,暴露出去后,在子组件内就可以调用了。


  1. <script setup>
  2. import HomePanel from './HomePanel.vue'
  3. import { findHotAPI } from '@/apis/home'
  4. import { ref,onMounted} from 'vue'
  5. const hotList = ref([])
  6. const getHotList = async () => {
  7. const res = await findHotAPI()
  8. hotList.value = res.result
  9. }
  10. onMounted(()=>getHotList())
  11. </script>

因为这次都是pinia插件,来管理状态对象管理的技术,所以比较省心了。除了必要的import导入之外,剩余的就是直接调用了,赋值了。最后提醒别忘了,引入生命周期函数onMounted。执行我们的函数即可完成数据的动态渲染和赋值。


  1. <template>
  2. <!--人气推荐栏目-->
  3. <HomePanel title="人气推荐" sub-title="人气爆款 不容错过">
  4. <ul class="goods-list">
  5. <li v-for="item in hotList" :key="item.id">
  6. <RouterLink to="/">
  7. <img v-img-lazy :src="item.picture" alt="">
  8. <p class="name">{{ item.title }}</p>
  9. <p class="desc">{{ item.alt }}</p>
  10. </RouterLink>
  11. </li>
  12. </ul>
  13. </HomePanel>
  14. </template>

如图,我们已经做好了,列表的渲染赋值。注意和接口返回的json对象的字段名保持一致。否则会报错。找不到该参数。

我们图片加载使用了懒加载。v-img-lazy。


题外话:

如果你想让图片的alt属性,出现文字内容,可以使用如下方式:

 

亲自测试了,可以正常的。不会报错。动态完成了赋值。

 

这种alt属性标签加文字内容,是可以满足SEO优化排名需求的,有助于蜘蛛爬虫抓取图片的时候进行分类存档。

好了,本次内容就分享到这里。下一期内容和大家分享,第三个栏目的渲染“热门品牌”

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/850137
推荐阅读
相关标签
  

闽ICP备14008679号