No1.精选前端面试题,享受每天的挑战和学习

news/2024/10/21 6:00:38/

在这里插入图片描述

文章目录

  • 如何实现分页功能
  • 如何实现vue虚拟列表功能
  • 浏览器的渲染原理
  • JS中Map、WeakMap和Object的区别

如何实现分页功能

要实现分页功能,主要涉及以下几个方面的步骤:

  1. 数据源:首先需要有一个数据源,可以是数据库、文件、API接口等。这个数据源应该包含所有需要进行分页显示的数据。

  2. 查询数据:使用合适的方式从数据源中获取需要显示的数据。通常会有相关的查询条件,比如每页显示多少条数据,当前页数等。

  3. 计算页数:根据总数据量和每页显示的数据数量,计算出总页数。可以使用公式 总页数 = 向上取整(总数据量 / 每页显示数量)

  4. 分页显示:根据当前页数和每页显示的数量,从查询结果中选取相应的数据进行展示。

  5. 上一页和下一页:提供上一页和下一页的功能,使用户可以切换到前一页或后一页的数据。需要注意边界情况,比如第一页没有上一页,最后一页没有下一页。

  6. 首页和尾页:提供首页和尾页的功能,使用户可以快速跳转到第一页或最后一页的数据。

  7. 页面导航:通常在页面底部会显示一组页面导航链接,允许用户点击直接跳转到指定页数的数据。

  8. 样式与交互:为分页功能添加合适的样式和交互效果,以提升用户体验。

请注意,以上步骤仅为一般实现分页功能的基本思路,具体实现方式可能会根据不同的开发环境和框架而有所差异。

如何实现vue虚拟列表功能

要实现 Vue 虚拟列表功能,可以按照以下步骤进行操作:

  1. 安装依赖:首先,确保你的项目中已经安装了 Vue。然后,使用命令行工具在项目根目录下运行以下命令安装 vue-virtual-scroll-list 插件:
npm install vue-virtual-scroll-list
  1. 导入插件:在需要使用虚拟列表功能的组件文件中,导入 vue-virtual-scroll-list
import VirtualList from 'vue-virtual-scroll-list';
  1. 注册插件:在 Vue 组件中注册 vue-virtual-scroll-list
export default {components: {VirtualList},// ...
}
  1. 配置虚拟列表:在模板中使用 <virtual-list> 标签,并根据需要设置相关属性,例如 size(每个项的高度)和 data(列表数据):
<virtual-list :size="20" :data="listData"><template v-slot="{ item }"><!-- 在这里定义每个项的内容 --><div>{{ item }}</div></template>
</virtual-list>
  1. 填充数据:在组件的数据中,定义 listData,并为其赋值所需的列表数据:
export default {// ...data() {return {listData: [/* 列表数据 */]};},// ...
}
  1. 样式调整:根据需要,对虚拟列表进行进一步的样式调整。

通过以上步骤,你就可以在 Vue 组件中使用虚拟列表功能了。虚拟列表会根据设置的每个项的高度和列表数据,动态渲染可见区域内的列表项,以减少页面渲染开销,提高性能和用户体验。

浏览器的渲染原理

浏览器的渲染原理可以分为以下几个步骤:

  1. 解析 HTML:浏览器会将接收到的 HTML 文档解析成 DOM 树。解析过程中,会进行词法分析和语法分析,构建出标签节点、文本节点等。

  2. 构建渲染树(Render Tree):浏览器将 DOM 树和 CSS 样式表结合,生成渲染树。渲染树只包含需要显示的节点,并且每个节点都关联着计算后的样式。

  3. 布局(Layout):渲染树中的节点会根据盒模型进行布局计算,确定每个节点在屏幕上的位置和大小。布局过程也被称为回流(reflow)。

  4. 绘制(Paint):绘制是将布局后的节点内容渲染为像素的过程,即绘制到屏幕上。浏览器会遍历渲染树,将每个节点转化为屏幕上的实际像素。

  5. 合成(Composite):如果页面有层叠样式或动画效果,浏览器会将多个图层进行合成,来提高性能和动画流畅度。合成是在合成线程中进行的,不涉及像素计算。

  6. 显示:最后,经过合成的图像会发送给显示器进行显示。

在整个渲染过程中,浏览器会尽可能地对性能进行优化。例如,通过异步加载外部资源、将脚本放在文档底部等方式,来加快页面的渲染速度。另外,浏览器还会对重绘和回流进行优化,尽量减少不必要的计算以提高渲染性能。

需要注意的是,不同的浏览器可能对渲染过程有所差异,但以上步骤是一般浏览器渲染的基本原理。

JS中Map、WeakMap和Object的区别

下表详细说明了 JavaScript 中 Map、WeakMap 和 Object 的相同点和不同点:

特性MapWeakMapObject
键类型任意类型的值(包括对象)任意类型的对象作为键字符串或 Symbol
值类型任意类型任意类型任意类型
对象引用处理不处理弱引用(对象被销毁时会自动清除)不处理
迭代顺序按插入顺序迭代不支持迭代不保证属性的迭代顺序
大小计算size 属性size 属性需手动计算属性个数
性能稳定性能稳定性能在大规模操作时可能较差
内存消耗弱引用键可被垃圾回收

相同点:

  • 可以用于存储键值对数据。
  • 可以通过键访问对应的值。
  • 可以进行增删改查操作。

不同点:

  • 键的类型:Map 和 WeakMap 的键可以是任意类型的值,而 Object 的键只能是字符串或 Symbol 类型。
  • 对象引用处理:Map 不处理对象引用,WeakMap 的键是弱引用(对象被销毁时会自动清除),而 Object 不处理对象引用。
  • 迭代顺序:Map 按插入顺序迭代,WeakMap 不支持迭代,Object 不保证属性的迭代顺序。
  • 大小计算:Map 和 WeakMap 可以直接获取其大小,而 Object 需要手动计算属性的个数。
  • 性能和内存消耗:Map 和 WeakMap 通常具有稳定性能,Object 在大规模操作时可能性能较差。WeakMap 在一些情况下可以节省内存。

需要根据不同的使用场景选择适合的数据结构,考虑到键类型、对象引用处理、迭代顺序、性能和内存消耗等因素。


http://www.ppmy.cn/news/705997.html

相关文章

Android JetPack深入分析Lifecycle源码

文章目录 前言关键类介绍LifecycleLifecycleObserverLifecycleOwnerLifecycleRegistry关键类UML类图关系 生命周期注册生命周期分发总结结语 前言 关键类介绍 Lifecycle 定义&#xff1a;用于存储有关组件&#xff08;如 activity 或 fragment&#xff09;的生命周期状态的信…

找不到战网服务器ip地址,《冰封王座》战网服务器IP地址大全

战网服务器IP地址大全及综合注册表 唯一战网(永远免费) 218.104.78.43 (或oursky.9966.org) 新非常战网(原好像叫match) 218.22.211.186 KCG战网(速度不错) 211.155.18.96 游侠战网(youxia) 202.101.165.185 2T星际战网 61.132.88.45 夏门大学战网 210.34.5.5 YY战网(Yunnan) 6…

暴雪战网服务器维护时间,炉石传说停机维护30小时 暴雪与网易做了个艰难的决定...

原标题:炉石传说停机维护30小时 暴雪与网易做了个艰难的决定 1月20日,随着补偿包陆续发放到相关玩家账号,《炉石传说》的运营事故得到了初步解决。从17日凌晨到18日晚间,在超过30个小时的维护时间里,暴雪和网易做了个“艰难”的决定:将所有游戏数据回档至1月14日15:20,并…

暴雪战网服务器维护时间,暴雪战网登录不上去2021

暴雪战网登录不上去的解决方法是&#xff1a;首先需要查看自己的电脑网络是否正常&#xff0c;如果只是网络的问题&#xff0c;需要先使电脑联网才行&#xff0c;如果网络没有问题的话&#xff0c;要查看当前的战网公告消息&#xff0c;是不是处于维护状态&#xff0c;导致客户…

Python Dataframe-B更新Dataframe-A

假设现在有两个dataframe&#xff0c;分别是A和B&#xff0c;它们有相同的列text和label。现在想使用B的label来更新A的label&#xff0c;基于它们共同的text。 数据示例 import pandas as pd# Sample DataFrames A and B data_A {text: [text1, text2, text3, text4], labe…

《基于AidLux的自动驾驶智能预警应用方案》

YOLOP模型转ONNX ONNX是开放式神经网络(Open Neural Network Exchange)的简称&#xff0c;ONNX的规范及代码主要由微软&#xff0c;亚马逊&#xff0c;Facebook和IBM等公司共同开发&#xff0c;以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型的框架有&#xff1…

IOS如何安装ipa文件

https://www.i4.cn/pro_ios.html#jiaocheng 用电脑下载 爱思助手PC端 然后电脑连接 苹果手机&#xff0c; 用 安装的 爱思助手PC端 软件 安装 “爱思助手移动端” 下载并安装 “爱思助手PC端” &#xff0c;打开爱思助手PC端 用数据线连接设备到电脑&#xff0c;连接成功后&am…

直接下载ipa包

itms-services://?actiondownload-manifest&urlxxx.plist