前端问题整理

news2024/12/29 10:10:34

Vue

  1. vue mvvm(Model-View-ViewModel)架构模式原理

    • Model 是数据层,即 vue 实例中的数据
    • View 是视图层, 即 dom
    • ViewModel,即连接Model和Vue的中间层,Vue实例就是ViewModel
    • ViewModel 负责将 Model 的变化反映到 View 上,同时也监听 View 的变化并反映到 Model 上,实现了双向数据绑定。
  2. 组件传参方式有哪些?

    • props和emit

    • 插槽

    • $refs

    • event-bus $emit $on

    • vuex和pinia

    • 路由传参

    • 本地储存

  3. 什么是vue实例?

    vue实例包含了数据、模板、方法等属性,负责处理视图的渲染和交互逻辑

  4. computed和watch原理

    计算属性 (computed) 的原理:

    计算属性是 Vue 中用于派生数据的一种方式,它的原理如下:

    依赖追踪:当在计算属性中使用响应式数据时,Vue 会自动建立一个依赖关系。这意味着计算属性知道哪些响应式数据影响了它的值。

    缓存:计算属性会缓存它的计算结果,只有当依赖的响应式数据发生变化时,才会重新计算。这样可以避免不必要的计算,提高性能。

    懒计算:计算属性只在实际需要时才会计算,这意味着只有当计算属性被访问时,它才会执行计算逻辑。

    自动更新:当依赖的响应式数据发生变化时,与之相关的计算属性会自动重新计算其值,并确保界面上相应的数据也会更新。

    监听属性 (watch) 的原理:

    监听属性用于监视响应式数据的变化,并执行副作用代码,其原理如下:

    侦听变化:当你在 Vue 实例中定义一个 watch 属性,你可以指定要监听的响应式数据。

    回调函数:你可以为每个被监听的数据定义一个回调函数。当被监听的数据发生变化时,这些回调函数会被触发执行。

    异步执行:Vue 默认会在数据变化后异步执行 watch 回调函数,以避免阻塞主线程。

    取消监听:你可以通过调用 unwatch 或 unwatchAll 方法来取消对响应式数据的监听。

  5. vue双向绑定原理

    Object.defineProperty(obj 要定义/修改的属性的对象, prop 要定义/修改的属性名, descriptor 具体的方法)

    <script type="text/javascript">
        var obj = {};
        Object.defineProperty(obj, 'txt', {
            get: function() {
                return obj;
            },
            set: function(val) {
                document.getElementById("txt").value = val;
                document.getElementById("show").innerText = val;
            }
        })
        document.addEventListener("keyup", function (e) {
            obj.txt = e.target.value;
        })
    </script>
    
  6. $nextTick

    DOM 更新之后执行回调函数

    新增表格输入框自动聚焦

  7. vue2和vue3的差异

    • setup相当于整合了beforeCreate和created
    • 移除了一些修饰符
    • ref reactive
    • 源码使用typescript进行重构,vue对typescript支持更加友好了
    • 样式穿透 v-deep
    • 插槽

useState
const [count,setCount] = useState
useEffect

useCallback
memo
useMemo
useRef
useReducer
useContext

首页加载优化
  • 路由懒加载
  • 组件按需引入
  • 打包配置externals分离资源库
  • cdn引入第三方库
  • gzip压缩
  • js资源异步加载延迟执行
  • css放头部、js放底部
  • 白屏配合骨架图、loading
  • 服务端渲染,ssr技术,next.js
网页性能优化
  • 网络请求优化

  • 资源精简优化

  • 渲染优化

  • 图片优化

    图片懒加载

  • 代码优化

    组件化、模块化、代码复用

webpack
  • tree shaking 代码分割
  • dllPlugin 分离打包
  • hotModuleReplscementPlugin 热更新
  • HtmlWebpackPlugin 生成入口html文件

react 新版本不同的东西
es6
react mome 怎么使用
父子传参 互相调用方法
webpack
首页加载
css选择器
flex:1使用条件

浏览器兼容、分辨率适配
  • css兼容:reset.css

    *{margin:0;padding:0;)}

  • 加浏览器前缀兼容

  • 设置统一字体:ttf字体包

  • 媒体查询

  • 百分比

  • em、rem

统计数组中每项出现的次数
let arr = [2, 3, 4, 2, 0, 1, 3, 2, 2, 9, 7, 100]
let obj = {}
for(var i = 0; i < arr.length; i++) {
    let key = arr[i]
    // 三元运算符判断
    obj[key] == undefined ? obj[key] = 1 : obj[key]++
}
console.log(obj);

后端获取数据到渲染
输入react 新版本不同的东西
url到页面显示过程
重绘,回流和重排
json深拷贝缺点
rem em vw vh
扩展运算原理

输入url地址到浏览器显示页面发生了什么
  • DNS对域名进行解析

  • 建立TCP连接(三次握手) 我要xxx=>确定吗?=>确定

  • 发送请求

  • 返回结果

  • 解析 HTML: 浏览器解析 HTML 并构建 DOM 树。

  • 解析 CSS: 浏览器解析 CSS 文件并构建 CSSOM 树。

  • 合并 DOM 和 CSSOM: 将 DOM 树和 CSSOM 树合并成渲染树(Render Tree)。

  • 布局(Layout): 根据渲染树计算每个元素的大小和位置,生成布局(Layout)。

  • 绘制(Paint): 将布局绘制到屏幕上。

  • 重绘与重排: 当页面的样式或布局发生变化时,浏览器会触发重绘(Repaint)和重排(Reflow),其中重排会引起布局的重新计算,性能开销较大,应尽量避免。

  • 在这里插入图片描述

iframe缺点
  • 不利于seo优化
  • 移动设备兼容性差
  • 阻塞主页面onLoad
  • 前进返回问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

构建企业核心竞争力:拥有自主大模型,引领行业未来

前言 随着人工智能技术的飞速发展&#xff0c;大模型技术已经成为推动行业进步的重要力量。在这个变革的时代&#xff0c;作为一位具有前瞻性的企业家&#xff0c;您深知拥有自主大模型对于提升公司竞争力、引领行业未来的重要性。本文将为您详细介绍大模型的市场现状以及企业…

【机器学习】通用大模型VS垂直大模型,你更加青睐哪一方?

目录 前言AI大模型的战场&#xff1a;通用与垂直的分化通用大模型&#xff1a;广泛适用的利器垂直大模型&#xff1a;深入领域的利器谁能够形成绝对优势&#xff1f;结语通用大模型文章推荐 前言 AI大模型的战场正在分化&#xff1a; 通用大模型在落地场景更广泛毋庸置疑&…

暗色系B端界面有什么好处、应用场景、缺点、该如何设计。

B端管理系统界面蓝色系和浅色系的非常多&#xff0c;暗色系一般不作为首选&#xff0c;这背后是什么原因呢&#xff0c;如果真的要设计暗色系界面&#xff0c;该如何办呢&#xff0c;本文就解决这些问题。 一、暗色系B端界面相对于浅色系有什么好处 1. 减少眩光和视觉疲劳&am…

引入tinyMCE富文本框在vue3中的使用

实现效果&#xff1a; 官网地址&#xff1a;TinyMCE 7 Documentation | TinyMCE Documentation 1.下载依赖&#xff08;我使用的版本是5.0 目前最新版本到7了&#xff09; pnpm/npm install tinymce5.0.0 -S pnpm/npm install tinymce/tinymce-vue -S 2.在public文件夹下…

浅析Spring中Async注解底层异步线程池原理

一、前言 开发中我们经常会用到异步方法调用&#xff0c;具体到代码层面&#xff0c;异步方法调用的实现方式有很多种&#xff0c;比如最原始的通过实现Runnable接口或者继承Thread类创建异步线程&#xff0c;然后启动异步线程&#xff1b;再如&#xff0c;可以直接用java.uti…

数字孪生技术如何赋能智慧工厂

数字孪生技术为什么能在智慧工厂中发挥作用&#xff1f;随着工业4.0的推进和智能制造的普及&#xff0c;数字孪生技术成为智慧工厂的重要推动力。数字孪生是指在虚拟空间中创建一个与现实物理实体相对应的数字模型&#xff0c;通过实时数据交互和分析&#xff0c;实现对物理实体…

即插即用!CVD:第一个生成具有相机控制的多视图一致视频方案!(斯坦福港中文)

论文链接&#xff1a;https://arxiv.org/abs/2405.17414 项目链接&#xff1a;https://collaborativevideodiffusion.github.io/ 最近对视频生成的研究取得了巨大进展&#xff0c;使得可以从文本提示或图像生成高质量的视频。在视频生成过程中添加控制是未来的重要目标&#x…

GIS大赛制图类训练营:从入门到直通决赛,你只差这一步!

为什么要参加GIS大赛&#xff1f; 相信只要是读GIS相关专业的同学&#xff0c;大家在学校应该会经常被老师要求学生参加比赛&#xff0c;往届的学长学姐们也会鼓励大家本科期间多参加GIS大赛。 那是因为参加GIS比赛的好处多多&#xff0c;报名参赛不仅可以提升自身动手能力&…

多校园跑腿小程序源码系统 帮取+代拿+外卖配送 功能超多 带完整的安装代码包+搭建部署教程

系统概述 多校园跑腿小程序源码系统 是一款基于微信小程序平台开发的全功能校园服务应用。该系统采用先进的前后端分离架构&#xff0c;结合云服务技术&#xff0c;确保了系统的高可用性、可扩展性和安全性。系统设计之初就充分考虑到了多校园环境的特殊性&#xff0c;支持多校…

基于flask的网站如何使用https加密通信

文章目录 内容简介网站目录示例生成SSL证书单独使用Flask使用WSGI服务器Nginx反向代理参考资料 内容简介 HTTPS 是一种至关重要的网络安全协议&#xff0c;它通过在 HTTP 协议之上添加 SSL/TLS 层来确保数据传输的安全性和完整性。这有助于防止数据在客户端和服务器之间传输时…

C#——值类型和引用类型的区别详情

值类型和引用类型的区别 值类型 值类型&#xff1a; 常用的基本数据类型都是值类型&#xff1a;bool 、char、int、 double、 float、long 、 byte 、ulong、uint、枚举类型、 结构体类型等特点: 在赋值的过程当中&#xff0c;把值的本身赋值给另一个变量&#xff0c;再修改…

TiKV 源码分析之 PointGet

作者&#xff1a;来自 vivo 互联网存储研发团队-Guo Xiang 本文介绍了TiDB中最基本的PointGet算子在存储层TiKV中的执行流程。 一、背景介绍 TiDB是一款具有HTAP能力(同时支持在线事务处理与在线分析处理 )的融合型分布式数据库产品&#xff0c;具备水平扩容或者缩容等重要特…

如何申请小程序SSL证书

在互联网时代&#xff0c;数据安全和用户隐私保护变得尤为重要。SSL证书作为网站、应用或小程序与用户之间建立安全连接的关键工具&#xff0c;其重要性不言而喻。SSL证书能够加密数据传输&#xff0c;防止信息被窃取&#xff0c;提升用户信任度&#xff0c;对于小程序开发者来…

Python自动化

python操作excel # 安装第三个库 cmd -> pip install xlrb 出现success即安装成功 # 导入库函数 import xlrb # 打开的文件保存为excel文档对象 xlsx xlrb.open_workbook("文件位置") # C:\Users\Adminstator\Desktop\学生版.xlsx # 操作工作簿里的工作表 # 1.…

ICRA 2024:基于视觉触觉传感器的物体表⾯分类的Sim2Real双层适应⽅法

⼈们通常通过视觉来感知物体表⾯的性质&#xff0c;但有时需要通过触觉信息来补充或替代视觉信息。在机器⼈感知物体属性⽅⾯&#xff0c;基于视觉的触觉传感器是⽬前的最新技术&#xff0c;因为它们可以产⽣与表⾯接触的⾼分辨率 RGB 触觉图像。然⽽&#xff0c;这些图像需要⼤…

113个大自然声音助眠纯音乐白噪音数据包

今天这一个数据包内置很多简单好听助眠纯音乐歌曲素材&#xff0c;可以帮助用户更好进行大自然声音聆听&#xff0c;带来更多简单舒适睡眠纯音乐环境&#xff0c;享受更多独特音乐听曲放松方式&#xff0c;帮助用户更好听歌助眠&#xff0c;获取更多好的睡眠环境以及质量&#…

Github 2024-06-13开源项目日报Top10

根据Github Trendings的统计,今日(2024-06-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3非开发语言项目2Shell项目1TypeScript项目1Swift项目1PHP项目1Blade项目1JavaScript项目1从零开始构建你喜爱的技术 创建周期:2156…

免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;软件教程专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明 文章目…

Java学习之-SpringAI

文章目录 一、SpringAI是什么二、准备工作1.GPT-API-free2.AiCore3.eylink 三、对话案例实现1.创建项目2.实现简单的对话 四、聊天客户端ChatClient1.角色预设2.流式响应 五、聊天模型六、图像模型(文生图)七、语音模型1.文字转语音(文生语音)2.语音转文字 八、多模态九、函数调…

Kubernetes架构详解

Kubernetes架构详解 KubernetsKubernetes架构Kubernetes主节点组件Kubernetes工作节点组件 Kubernetes是云原生非常核心的组件&#xff0c;是云计算的未来&#xff0c;也是大厂经常考察的内容&#xff0c;下面我们就全面来讲解Kubernetes架构 Kubernets Kubernets是Google开发…