小红书瀑布流布局实现

技术栈:vue3

实现背景:最近项目不忙,想拿掘金文章联系一些小demo,分享一个小菜鸡的踩坑历程!!

借鉴文章:借鉴是雅称,俗称叫照葫芦画瓢加上一些自己的理解!!

借鉴地址:https://juejin.cn/post/7322655035699396660

实现过程:

思想:外层盒子使用绝对定位,里层每单个盒子使用相对定位,第一行正常排列,第二行排在第二行高度最小的下方

资源:小红书network在网络模块搜索:homefeed接口
一:将接口数据分别定义在public文件里面data.json,使用fetch请求public文件

  1. 我们看看如果实现这个方式需要什么参数:1.原始数据:接口请求过来的数据carList:[]
  2. 2.我们每次都需要对比上一行的高度所以需要把上一行的高度全部存起来,多少个???暂定为可传参数column,将上一行高度放在一个数组里面columnHeight: new Array(props.column).fill(0)
  3. 我们是使用平移的css实现方式,需要知道每个盒子的宽高以及平移的x,y。。。。cardPos: []
  4. 我们需要给盒子定宽度itemWidth: 0,每个盒子的宽度是一定的,
  5. 再就是列表查询参数,page:1,isFinish: false,(是否是最后一页)
    二:接下来看看css,html的怎么实现

tip:记得加入box-sizing:border-box!!!

三 :生命周期初始化

computedCardPos函数

获取最小高度以及最小高度的坐标是我们经常需要可以放到computed里面计算

父组件里面我们定义插槽出口

const colorArr = ["#409eff", "#67c23a", "#e6a23c", "#f56c6c", "#909399"];

从父组件传来的column我们还没有解决!!!!

父组件:

子组件:

相关推荐
哀木2 小时前
一个简单的套壳方案,就能让你的 Agent 少做重复初始化
前端
问心无愧05132 小时前
ctf show web入门27
前端
小村儿2 小时前
给 AI Agent 装上"长期记忆":Karpathy 的 LLM Wiki 思想,我做成了工具
前端·后端·ai编程
竹林8182 小时前
用ethers.js连接MetaMask实现Web3钱包登录:从踩坑到稳定运行的完整记录
前端·javascript
heyCHEEMS2 小时前
如何用 Recast 实现静态配置文件源码级读写
前端·node.js
心连欣2 小时前
从零开始,学习所有指令!
前端·javascript·vue.js
review445432 小时前
大模型和function calling分别是如何工作的
前端
东东同学2 小时前
耗时一个月,我把 Nuxt 首屏性能排障经验做成了一个 AI Skill
前端·agent
冴羽3 小时前
超越 Vibe Coding —— AI 辅助编程指南
前端·ai编程·vibecoding
梦想的颜色4 小时前
一天一个SKILL——前端最佳自动化测试 webapp-testing
前端·web app