前端需要知道的知识点,附有链接

关系型数据库和非关系型数据库的区别有哪些?

区别:关系型数据天然就是表格式的,因此存储在数据表的行和列中;数据表可以彼此关联协作存储,也很容易提取数据。而非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起;非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

shadow-root

https://www.cnblogs.com/yf2196717/p/14732459.html

微前端系列 - js隔离、样式隔离、元素隔离问题

https://juejin.cn/post/7134178779349385247

webComponent,shadowDom,js沙箱隔离,iframe简介

https://blog.csdn.net/zhangsuren1/article/details/135462566

  • 总之,shadow-root是Chrome浏览器中的一种新的DOM节点,它可以被用来创建一个独立的DOM树,这个独立的DOM树可以被用来构建一个独立的组件,而不会影响到其他的DOM节点。它可以被用来控制组件的样式、行为、交互和数据,从而使组件可以更加灵活和可扩展。

  • 总结:iframe隔离是独立的文档环境,shadowDom是封装在shadowRoot内部,scoped是加了一层变量作用域,而qiankun则是通过shadowDom配合像那种proxy去代理window对象来达到让沙盒内部代码优先原则,同时在子组件里配置的bootStrap,mount,unmount钩子函数,来恢复快照的方式去实现样式隔离的,状态快照会在bootStrap阶段去保存,一份是原来的一份是内部改变之后的,当再次进入沙盒或者退出沙盒都可以减少性能消耗了,非常的方便。

微前端wujie、qiankun、micro-app、EMP 方案比较

  • 无界微前端采用 webcomponent + iframe 的来加载子应用,具有成本低、速度快、原生隔离、功能强大等一系列优点,在满足用户核心诉求的同时让使用微前端的体验就像使用普通组件一样简单,极大的降低了使用门槛。
  • micro-app 是基于 webcomponent + qiankun sandbox 的微前端方案。
  • qiankun 方案是基于 single-spa 的微前端方案。
  • https://blog.csdn.net/weixin_43832782/article/details/128929191

react跟vue的diff算法有什么区别

https://www.php.cn/faq/491018.html

react跟vue的区别(纯是作者想的哈)

本人使用下来觉的,在使用层面其实以及大差不差了,要说原理上,底层还是有点小小的区别的(我这里就不多描述了,react原理理解不透彻)。
vue2, html script data method style (视图,逻辑,数据,方法,样式,声明周期等)都是分开的,逻辑不集中;但其实如果组件逻辑重了的话都会拆组件的,每个组件不会超过300行代码。其实写代码规范一下的话都好说
vue3,增加了hook的写法,就是数据和逻辑声明周期都可以一起写了(直接声明直接用,而不是像vue2中在return内的data内写),集中了一下。 现在就是 html 逻辑 样式,三大块(但是哈 html内要是直接想使用script内的数据,还是还是要return出来才可以使用)
vue3.2 setup 增加了语法糖,已经不需要写return。使用下来的感觉就是 script声明的变量 在html可以直接用;像不像是在一个作用域中,没有那种割裂的感觉了,是不是感觉除了有html和script标签的(有标签看起来还节俭一些)其他的都像在一起写的感觉。目前就是两大块 (逻辑,样式)

react 用的jsx的语法,一种都是(逻辑,样式)两大块,其中html内的循环啊,判断啊都是通过js来直接写的map,if等,vue是通过指令来写的(这方面比较好);样式其实也可在script内写,但是没必要,因为style 样式有点多哈,还多了一些多余的代码,完全没有style好用

vite和vuecli区别

Vite和Vue CLI的主要区别在于它们的实现原理、开发环境启动速度、构建速度、依赖关系分析、插件系统和配置灵活性。以下是详细介绍:12

实现原理。Vite是一个基于ESModule的构建工具,利用原生ESModule的特性,将每个文件作为一个模块,通过浏览器去解析和执行,无需提前打包。Vue CLI是一个基于Webpack的工具,使用Webpack对代码进行打包,并提供静态资源服务。
开发环境启动速度。Vite利用浏览器的原生ESModule支持,实现快速的冷启动和热模块替换(HMR),开发环境启动速度较快。Vue CLI在开发环境下基于对源码文件进行打包,启动速度相对较慢。
构建速度。Vite的构建速度通常较快,因为它避免了传统的打包过程。Vue CLI的构建速度较慢,因为它需要使用Webpack对代码进行打包。
依赖关系分析。Vite可以更细粒度地分析依赖关系,实现按需加载,减小构建体积。Vue CLI通过Webpack的解析器分析依赖关系。
插件系统。Vite使用了Rollup作为其构建引擎,与Vue CLI使用的Webpack不同,导致在插件系统上有所差异。Vue CLI的插件系统更加丰富和成熟。
配置灵活性。Vite的配置相对简单,适用于快速原型开发和小型项目。Vue CLI支持通过配置文件进行灵活的定制,适用于中大型的Vue.js应用程序。

webpack热更新原理

1.Webpack监听文件变化
  Webpack使用文件系统通知(如Node.js的fs.watch或fs.watchFile)来监视项目文件的更改。

2.重新编译模块
  当Webpack检测到文件发生变化时,它会重新编译受影响的模块。

3.构建新模块版本
  重新编译的模块与先前的版本进行比较,并构建新的模块版本。

4.通知更新
  Webpack通过WebSocket或轮询机制将新的模块版本通知给运行时环境。

5.应用更新
  运行时环境接收到新的模块版本后,将其应用于当前运行的应用程序,保持应用程序状态,并更新显示。

什么是线程、进程?

线程是程序执行的最小单位,是进程的一个执行流,一个进程由多个线程组成的。

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

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

相关文章

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新![2024/4/21]

​ 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 专栏介绍 YOLOv9作为最新的YOLO系列模型,对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型&#xff0…

《HCIP-openEuler实验指导手册》1.3Apache动态功能模块加载卸载练习

1.3.1 配置思路 mod_status 模块可以帮助管理员通过web界面监控Apache运行状态,通过LoadModule指令加载该模块,再配置相关权限,并开启ExtendedStatus后,即可使用该模块。 1.3.2 配置步骤 检查mod_status模块状态(使…

net模块

建立TCP的链接 1 发送消息的服务 2 接收消息 2 建立http的链接让浏览器进行访问 import net from netconst html <h1>TCP</h1>const respinseHeaders [HTTP/1.1 200 OK,Content-Type:text/html,Content-Length: html.length,\r\n,html]const http net.create…

RK3568 学习笔记 : u-boot 通过 tftp 网络更新 u-boot自身

前言 开发板型号&#xff1a; 【正点原子】 的 RK3568 开发板 AtomPi-CA1 使用 虚拟机 ubuntu 20.04 收到单独 编译 RK3568 u-boot 使用 rockchip Linux 内核的设备树 【替换】 u-boot 下的 rk3568 开发板设备树文件&#xff0c;解决 u-boot 下千兆网卡设备能识别但是无法 Pi…

Spring(下)

接上篇&#xff0c;从第八个问题讲起 八.Spring工厂创建复杂对象 1.什么是复杂对象 简单对象就是可以直接new出来的&#xff0c;也就是直接调用构造方法创建 所以复杂对象就是不能直接通过调用构造方法创建。就比如JDBC中的Connection 2.三种方法 &#xff08;1&#xff…

【华为 ICT HCIA eNSP 习题汇总】——题目集18

1、SSH默认工作使用的TCP端口号是&#xff08;&#xff09;。 A、20 B、21 C、22 D、23 考点&#xff1a;①传输层 ②应用层 解析&#xff1a;&#xff08;C&#xff09; SSH为建立在应用层和传输层上的安全协议&#xff0c;是对TCP/IP协议的传输层以上的SSH会话流程进行加密的…

[Android]设置尺寸时的单位选择

在使用 Kotlin 和 Jetpack Compose 进行 Android 开发时&#xff0c;选择正确的单位来设置视图尺寸、间距和字体大小是非常重要的。这些单位确保应用在各种设备和屏幕尺寸上都能保持良好的布局和可读性。 三种常用的单位 1. Density-independent Pixels (dp) 用途&#xff1…

必应搜索广告与谷歌搜索广告对比那个更好?

搜索引擎广告作为企业获取潜在客户的重要渠道之一&#xff0c;其效果直接关系到营销策略的成功与否。两大搜索引擎巨头——谷歌&#xff08;Google&#xff09;和必应&#xff08;Bing&#xff09;各自提供了广告平台&#xff0c;即谷歌广告&#xff08;Google Ads&#xff09;…

【Web】2022DASCTF X SU 三月春季挑战赛 题解(全)

目录 ezpop calc upgdstore ezpop 瞪眼看链子 fin#__destruct -> what#__toString -> fin.run() -> crow#__invoke -> fin#__call -> mix.get_flag() exp <?php class crow {public $v1;public $v2;}class fin {public $f1; }class what {public $a; }…

力扣hot100(python解析)

文章目录 13. 合并区间14. 轮转数组 13. 合并区间 合并区间 数组 排序 思路&#xff1a; 代码&#xff1a; class Solution:def merge(self, intervals):result []if len(intervals) 0:return result # 区间集合为空直接返回intervals.sort() # 默认按照区间的左边界进…

年轻人选择程序员岗位往往都有哪些原因

虽然程序的工作压力比较大&#xff0c;而且职业生命周期相对比较短&#xff0c;但是程序员岗位对于年轻人依然具有非常大的吸引力&#xff0c;原因有三方面&#xff0c;其一是程序员岗位的岗位附加值相对比较高&#xff1b;其二是程序员岗位的上升空间比较大&#xff1b;其三是…

z3求解器脚本(CTF-reverse必备)

CTF-reverse中有一类题目是通过约束方程求解变量的值&#xff0c;然后转化为对应的ASCII码&#xff0c;最终获得flag&#xff0c;约束方程以及要求解的未知数往往非常多&#xff0c;因此手算十分不现实&#xff0c;借助python中的z3模块可以很快完成求解&#xff01; 下面是某道…

开始Java之旅

1.Java语言 java是一门优秀的程序设计语言&#xff0c;并且是一种半编译型&#xff0c;半解释型语言。 Java 语言源于 1991 年 4 月&#xff0c;Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动&#xff0c;此计划最初的目标是开发一种能够在各种消费性电…

递归的题目

1.一个递归算法必须包括&#xff08;B&#xff09;。 A.递归部分 B.终止条件和递归部分 C.循环部分 D.终止条件和循环部分 2.阶乘的递归代码&#xff1a; int func(int i) {if (i > 1)return i * func(i - 1);elsereturn 1; } 求和的递归代码&#xff1a; int f(int n…

【分治算法】Hanoi塔问题Python实现

文章目录 [toc]问题描述Python实现 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 学习指南&#xff1a;Python学习指南 问题描述 设 a a a、 b b b、 c c c是三个塔座&#xff0c;开始时&#xff0c;在塔座 a a a上有一叠共 n n n个圆盘&#xff0c;这些圆盘…

最新免费 ChatGPT、GPTs、AI换脸(Suno-AI音乐生成大模型)

&#x1f525;博客主页&#xff1a;只恨天高 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ ChatGPT3.5、GPT4.0、GPTs、AI绘画相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容…

虚良SEO怎么有效的对百度蜘蛛权重优化?

人们交换链接通常首先要问的是你BR值是多少&#xff1f;国内搜索引擎来说以百度马首是瞻&#xff0c;无论seo还是竞价都看重的是百度&#xff0c;那么针对百度权重的优化就特别重要了。其实&#xff0c;百度权重是民间的一种说法&#xff0c;百度官方并没有认同这个数值&#x…

mkdir: ‘/opt/hdfsDep‘: Input/output error

执行hdfs dfs -mkdir -p /opt/hdfsDepo时&#xff0c;报错&#xff1a;mkdir: /opt/hdfsDep: Input/output error&#xff0c;应该是配置文件的问题。 参考文章Spark Standalone模式部署-CSDN博客第三章&#xff0c;安装配置好hadoop&#xff0c;并启动&#xff0c;再次执行上…

(回溯)记忆化搜索和dp

动态规划的核心就是 状态的定义和状态的转移 灵神 的 回溯改递归思路 首先很多动态规划问题都可以采用 回溯 的思想 回溯主要思想就是把 一个大问题分解成小问题 比如 采用子集类回溯问题中的核心思想-> 选或不选 或者 选哪个 记忆化搜索之后 我们可以发现 每个新节点依…

Oracle故障处理:ORA-00600错误处理思路

提前说明&#xff1a; 该故障&#xff0c;我只是旁观者。 但处理该故障的DBA工程师&#xff0c;思路很清晰&#xff0c;我非常受教&#xff01;在此也将经验分享。 目录 项目场景 问题分析 优化建议 项目场景 在某项目数据库运维群&#xff0c;有现场同事发了张报错截图如下…