A · ### 解答思路 两者并不是完全互斥的关系:`axios` 是更底层的 HTTP 客户端,负责发请求本身;`React Query` 是更高层的数据请求管理库,负责请求状态(加载中/成功/失败)、缓存、重试等能力,实际项目中也可以搭配使用(用 `axios` 发请求,用 `React Query` 管理请求状态)。 #
尽管 SPA(单页应用)通常为用户提供了流畅的操作体验。
年初接到一个任务将 semi-ui 替换到 antd,但是能人力预算不太够,所以基于工作量和效率选择了基于 AST 的替换方案。
A · ### 解答思路 `localStorage` 本身不是响应式的,但浏览器提供了 `storage` 事件:当某个页面修改了 `localStorage`,其他同源的页面可以通过监听 `window` 的 `storage` 事件感知到变化,从而实现一种准响应式的跨页面同步。 ### 示例代码(如有代码) ```js
A · ### 解答思路 选座系统可以拆成三部分:座位数据如何建模、座位数据如何维护(打点/录入)、座位图如何绘制展示。成本最低的实现方式是手动打点,即人工录入每个座位的坐标和属性。 ### 详细说明 - **座位数据建模**:每个座位可以用一个 `x, y` 坐标(保证互不重叠)加上一组属性来描述,比如票档等级(一等/二等)
A · ### 解答思路 Flex 子项默认具有 `flex-shrink: 1`,当空间不足时会被压缩,看起来就像设置的 `width` 失效;给子元素加上 `flex: none`(即 `flex-grow: 0; flex-shrink: 0; flex-basis: auto`),禁止其在极端情况下被拉伸/压缩即可解决
A · ### 解答思路 节点折叠的点击事件很可能绑定在原生 DOM 事件上,通过给 `radio`/`checkbox` 添加 `@click.native.stop` 阻止事件冒泡到父级节点,是最直接的处理方式;如果组件内部通过 `$emit` 触发折叠逻辑而非依赖原生事件冒泡,则需要针对原始事件本身来阻止冒泡。 ###
A · ### 解答思路 优先使用现成的可视化库,比如 ECharts 内置的力引导布局图;如果需要自己实现,用普通的 `div` 布局很难胜任,需要借助绝对定位并手动计算每个节点的位置。 ### 详细说明 - **推荐方案**:ECharts 提供了力引导布局的图(Graph)类型,支持节点、连线,以及连线是否显示等配置,参
A · ### 解答思路 浏览器本身无法直接读取用户的公网 IP,只能通过向服务器发起一次请求,由服务器读取请求的来源 IP 并返回给前端,从而间接获取出口 IP。 ### 详细说明 - 前端在 Vue 组件中发起一个普通的 HTTP 请求(比如请求自己搭建的服务),服务端根据请求头(如 `X-Forwarded-For`、`
在我们日常工作中有很多场景需要使用代理服务,比如说前端开发环境的 proxy 正向代理,比如说常见的 nginx 反向代理,比如常见的 cdn 等等。但是还有很多场景也可以使用代理服务。