Vue真实技术面试题解析【兄弟组件、vue-router、增量部署】
兄弟组件的传值方式,有两种方式,把你尽可能知道的告诉我
我的答案:使用父组件传值 和 状态管理传值
- 使用
事件总线(Event Bus)
:创建一个空的 Vue 实例作为事件总线,在其中定义事件和对应的处理函数,然后在需要传值的组件中使用$emit
触发事件,并在接收值的组件中使用$on
监听事件来获取传递的值。这种方式适用于任意组件之间的通信,但是需要手动管理事件的注册和销毁,否则可能会造成内存泄漏³⁴。 - 使用 Vuex(状态管理):Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它可以将组件的共享状态抽取出来,以一个全局单例模式管理。在 Vuex 中,每个组件都可以通过
mapState
,mapGetters
,mapActions
,mapMutations
等辅助函数来访问或修改全局状态,从而实现组件之间的数据传递。这种方式可以方便地管理应用的状态,但是也会增加应用的复杂度,不适合小型项目⁵。
参考链接:
(1) vue兄弟组件传值的3种方法_mrsun_web的博客-CSDN博客
(2) Vue组件传值——兄弟组件传值_vue页面传值如何接收值放到表单上-CSDN博客
(3) vue兄弟组件之间传值和方法调用_vue调用兄弟组件中的方法,并传参-CSDN博客
(4)vue组件(父子,兄弟,爷孙,)之间传值 - 掘金 (juejin.cn)
(5) 【Vue3】20-兄弟组件传值 - 掘金 (juejin.cn)
Echarts随着浏览器大小变化,如何操作?
我的回答:直接监听size大小变化,再次调用
Echarts 随着浏览器大小变化,有一个简单的方法可以实现图表的自适应,就是使用resize
方法。这个方法可以在浏览器窗口大小改变时,自动调整图表的宽度和高度,以适应新的尺寸。具体的操作步骤如下:
- 在创建图表实例时,使用
autoResize
选项,设置为true
,表示开启自适应功能。 - 在图表容器的样式中,设置
width
和height
为100%
,表示占满父元素的宽度和高度。 - 在
window
对象上,添加resize
事件监听器,当窗口大小改变时,调用图表实例的resize
方法,重新渲染图表。
下面是一个简单的示例代码:
// 获取图表容器var chartContainer = document.getElementById('chart');// 创建图表实例,开启自适应功能var chart = echarts.init(chartContainer, null, {autoResize: true});// 设置图表的配置项和数据var option = {// 省略...};// 设置图表的配置项和数据chart.setOption(option);// 在窗口大小改变时,调用图表的 resize 方法window.addEventListener('resize', function () {chart.resize();});
参考链接:
(1) Apache ECharts
(2) Echarts实现随容器大小改变实时更新大小及采坑记录 - 掘金 (juejin.cn)
(3) 特性 - Apache ECharts
(4) 【精选】ECharts实现数据可视化入门教程(超详细)_牛哄哄的柯南的博客-CSDN博客
(5) ECharts 教程 | 菜鸟教程 (runoob.com).
Vue-router的有几种模式?
我的答案:两种,hash模式和history模式
Vue-Router 有两种模式:哈希模式
和历史模式
哈希模式
:不会包含在 HTTP 请求中,不会重新加载页面,历史模式
:需要和后端配合,前端的 URL 和后端发起请求的 URL 需要一致
- Vue-Router 默认使用哈希模式,可以通过配置 mode: ‘history’ 来使用历史模式
- 哈希模式使用 URL 的 hash 来模拟完整的 URL,当 hash 发生变化时,不会导致浏览器向服务器发出请求,而历史模式是通过调用
window.history
对象上的方法来实现页面的无刷新跳转
参考链接:
(1) vue-router路由模式有几种?_vuerouter路由有几种-CSDN博客
(2) vue-router路由有几种模式?说说它们的区别?_smouns_的博客-CSDN博客
(3) Vue Router | Vue.js 的官方路由 (vuejs.org)
(4) vue路由的三种模式 - 掘金 (juejin.cn)
使用history模式时候,刷新404问题
我的回答:我们的解决方法是通过配置nginx完成
使用 history 模式时候,刷新 404 问题是一个常见的 Vue 路由问题。
它的原因是在 history 模式下,URL 是正常的,没有哈希值,当用户直接访问某个子路径时,浏览器会向服务器发送请求,如果服务器没有配置相应的路由规则,就会返回 404 错误。为了解决这个问题,有以下几种方法:
-
在服务器端配置一个
覆盖所有情况的候选资源
,即如果 URL 匹配不到任何静态资源,就返回同一个 index.html 页面,这个页面就是 Vue 应用的入口页面。这样,无论用户访问什么路径,都会返回 index.html,然后由 Vue 路由来处理。不同的服务器有不同的配置方式,可以参考官方文档中的示例¹。 -
在 Vue 应用中定义一个通配符路由,即匹配所有路径的路由,用来显示一个 404 页面,提示用户访问的路径不存在。这样,当用户访问一个不存在的路径时,不会看到服务器返回的 404 错误,而是看到 Vue 应用自定义的 404 页面。例如,可以在路由配置中添加如下代码²:
const router = new VueRouter({mode: 'history',routes: [{ path: '*', component: NotFoundComponent }] })
-
如果使用 Node.js 服务器,可以使用服务端路由匹配到来的 URL,并在没有匹配到路由的时候返回 404,以实现回退。这样,当用户访问一个不存在的路径时,会看到服务器返回的 404 错误,而不是 Vue 应用的入口页面。这种方法需要在服务端定义和 Vue 应用一致的路由规则,以避免不一致的情况³。
参考链接
(1) 一文搞懂Vue history模式打包刷新页面404问题 - 掘金 (juejin.cn)
(2) 新来的前端小姐姐问:Vue路由history模式刷新页面出现404问题 - 知乎 (zhihu.com)
(3) vue路由history模式刷新页面出现404问题 - UCloud云社区
(4) 解决Vue中使用history路由模式出现404的问题_vue history 404_NetRookieX的博客-CSDN博客
(5) history模式下页面刷新404问题 - Lencamo - 博客园 (cnblogs.com)
(6) 不同的历史模式 | Vue Router (vuejs.org)
描述一下本地存储
我的答案:localStore和sessionstore
本地存储是一种在用户浏览器中保存数据的技术,它可以让网页应用在不依赖服务器的情况下,实现数据的持久化和共享。本地存储有以下几个特点:
- 本地存储的数据是按照 起源地(origin) 来划分的,也就是说,不同的域名和协议下的网页不能互相访问本地存储的数据。
- 本地存储的数据只能是 字符串类型,如果要存储其他类型的数据,需要使用 JSON.stringify() 和 JSON.parse() 方法进行转换。
- 本地存储的数据不会随着浏览器的关闭而消失,除非用户主动删除或者浏览器清理缓存。
- 本地存储的容量一般比较大,一般在 5MB 到 20MB 之间,不同的浏览器有不同的限制。
本地存储主要有两种方式,分别是 localStorage 和 sessionStorage。它们的区别在于:
- localStorage 存储的数据
没有过期时间
,可以长期保存在浏览器中,除非用户或者网页主动删除。 - sessionStorage 存储的数据只在当前会话(session)中有效,当用户关闭浏览器或者标签页时,数据会被清除。
本地存储的使用方法很简单,可以通过以下的代码来实现:
// 存储数据localStorage.setItem('name', 'Alice');sessionStorage.setItem('age', '18');// 获取数据var name = localStorage.getItem('name');var age = sessionStorage.getItem('age');// 删除数据localStorage.removeItem('name');sessionStorage.removeItem('age');// 清空数据localStorage.clear();sessionStorage.clear();
参考链接
(1) HTML 本地存储 (w3school.com.cn)
(2) Window.localStorage - Web API 接口参考 | MDN (mozilla.org)
(3)前端本地存储之LocalStorage - 掘金 (juejin.cn)
工程当中,Vue是怎么做增量部署的?
我扯了一下动态路由
增量部署是一种部署方式,它的目的是在每次部署过程中,只更新和发布变化的部分,而不是整个项目,从而提高部署的效率和稳定性。增量部署的优点有:
- 减少部署的时间和资源消耗,提高部署的速度和质量。
- 减少部署的风险和影响范围,避免因为全量部署而导致的系统不可用或者功能异常。
- 增加部署的灵活性和可控性,可以根据不同的需求和场景,选择合适的部署策略和方式。
Vue 项目的增量部署,一般需要以下几个步骤:
- 利用代码管理工具(如 Git)提取两个版本之间的增量,并结合其他方面的增量变化,如依赖包,配置文件,静态资源等。
- 按照增量部分制定具体的部署方式,编写部署脚本,并准备增量部署包(包括混淆代码,压缩文件等)。
- 分发和部署增量部署包到已经运行上一版本的目标环境,完成系统的版本升级。
参考链接:
(1) Vue配置自动打包并增量更新 - 掘金 (juejin.cn)
(2) 部署 | Vue CLI (vuejs.org)
(3) 增量部署和全量部署 - datang6777 - 博客园 (cnblogs.com)
(4) 基于vue_cli配置多页面实现增量打包 - 腾讯云开发者社区-腾讯云 (tencent.com)
(5) 大家都是,怎么做前端项目的 增量部署 的? - 知乎 (zhihu.com)
两个单页面应用(同一个域名下)之间怎么做传值通信
我的答案:通过路由传值
两个单页面应用之间怎么做传值通信?这是一个关于前端开发的问题,我根据我搜索到的结果,尝试给你一个简单的回答。
单页面应用(Single Page Application,SPA)是一种只有一个 HTML 页面的网页应用,它可以通过动态更新页面的部分内容,而不需要重新加载整个页面,从而提高用户体验和性能。单页面应用之间的传值通信,是指在不同的单页面应用中,如何实现数据的交换和共享。单页面应用之间的传值通信,有以下几种常见的方法:
- 使用
URL 参数
:这种方法是在跳转到另一个单页面应用时,通过 URL 的查询字符串(?)或者哈希值(#)来传递数据,然后在目标页面中通过解析 URL 来获取数据。这种方法简单易用,但是只能传递字符串类型的数据,而且数据会暴露在 URL 中,不够安全¹²。 - 使用
localStorage
或者sessionStorage
:这种方法是利用浏览器提供的本地存储功能,将数据保存在 localStorage 或者 sessionStorage 中,然后在另一个单页面应用中通过读取本地存储来获取数据。这种方法可以传递任意类型的数据,而且数据不会随着浏览器的关闭而消失,但是需要注意本地存储的容量限制和跨域问题¹⁵。 - 使用 postMessage:这种方法是利用 HTML5 提供的 postMessage API,可以实现不同窗口或者 iframe 之间的数据传递,无论是否同源。这种方法可以传递任意类型的数据,而且数据不会暴露在 URL 中,但是需要注意安全性问题,避免接收来自不可信来源的数据¹²。
参考链接:
(1) 四种方式实现不同页面之间的通信——前端 - 掘金 (juejin.cn)
(2) 面试官:前端跨页面通信,你知道哪些方法? - 掘金 (juejin.cn)
(3) Vue 多个平行页面间传值,非组件间传递,简单易懂_前端多页面工程非兄弟组件传值-CSDN博客
如果需要传输大数据(列表类型的,100条,1000条这种)呢?如何传输的?
开始我回答的是图片共享,但是后面强调的是列表类型的,不是图片
如果你需要传输的数据是列表形式的,比如 100 条、1000 条之类的,你可以使用以下几种方法:
- 使用
JSON 格式
:JSON 是一种用于表示数据的轻量级格式,它可以将数据转换为字符串,然后通过 URL 参数,localStorage,sessionStorage,postMessage,BroadcastChannel 等方式进行传输。在目标页面中,可以使用 JSON.parse() 方法将字符串转换为原始的数据类型。使用 JSON 格式进行跨页面通信的示例代码如下:
// 在页面 A 中,将数据转换为 JSON 字符串const data = [{name: 'Alice', age: 18}, {name: 'Bob', age: 20}];const json = JSON.stringify(data);// 在页面 A 中,使用 localStorage 存储 JSON 字符串localStorage.setItem('data', json);// 在页面 B 中,读取 localStorage 中的 JSON 字符串const json = localStorage.getItem('data');// 在页面 B 中,将 JSON 字符串转换为原始的数据类型const data = JSON.parse(json);console.log(data); // 输出 [{name: 'Alice', age: 18}, {name: 'Bob', age: 20}]
- 使用
IndexedDB
:IndexedDB 是浏览器提供的一种用于存储大量结构化数据的数据库,可以在不同页面之间存储和读取数据。IndexedDB 可以直接存储和读取数组,对象等复杂的数据类型,无需转换为字符串。使用 IndexedDB 进行跨页面通信的示例代码如下:
// 在页面 A 中,打开或创建一个 IndexedDB 数据库const request = indexedDB.open('myDB', 1);// 监听 onupgradeneeded 事件,创建一个对象仓库(object store)request.onupgradeneeded = (event) => {const db = event.target.result;const objectStore = db.createObjectStore('myData', {keyPath: 'id'});};// 监听 onsuccess 事件,获取数据库实例request.onsuccess = (event) => {const db = event.target.result;// 创建一个事务,指定对象仓库和模式const transaction = db.transaction(['myData'], 'readwrite');// 获取对象仓库const objectStore = transaction.objectStore('myData');// 存储数据到对象仓库const data = [{name: 'Alice', age: 18}, {name: 'Bob', age: 20}];objectStore.add({id: 1, data: data});};// 在页面 B 中,打开或创建一个 IndexedDB 数据库const request = indexedDB.open('myDB', 1);// 监听 onsuccess 事件,获取数据库实例request.onsuccess = (event) => {const db = event.target.result;// 创建一个事务,指定对象仓库和模式const transaction = db.transaction(['myData'], 'readonly');// 获取对象仓库const objectStore = transaction.objectStore('myData');// 读取对象仓库中的数据const request = objectStore.get(1);// 监听 onsuccess 事件,获取读取的结果request.onsuccess = (event) => {const data = event.target.result.data;console.log(data); // 输出 [{name: 'Alice', age: 18}, {name: 'Bob', age: 20}]};};
我希望这些方法能够帮助你解决跨页面传输列表数据的问题。如果你还有其他问题,欢迎继续提问。😊
非对称式加密有了解吗?稍微讲解一下吧
非对称加密是一种密码学的算法,它使用了两个不同的密钥,一个是公钥,一个是私钥。公钥可以公开给任何人,用于加密数据或者验证签名;私钥则必须保密,用于解密数据或者生成签名。
非对称加密的优点是可以解决密钥配送问题,即 不需要事先在通信双方之间安全地共享密钥 ;非对称加密的缺点是计算速度较慢,不适合加密大量的数据。非对称加密的常见应用有:
- 通过
公钥加密对称密钥
,实现混合加密。例如,HTTPS 协议就是使用 RSA 算法加密对称密钥,然后使用对称密钥加密网页内容,从而保证了网页的安全传输¹。 - 通过
私钥加密数据
,生成数字签名。数字签名可以证明数据的来源和完整性,防止伪造和篡改。例如,软件开发者可以使用私钥对软件进行签名,用户可以使用公钥验证软件的合法性²。 - 通过
公钥加密数据
,实现安全的信息交换。例如,电子邮件可以使用公钥加密敏感内容,只有持有私钥的收件人才能解密查看³。
非对称加密的常见算法有 RSA、ElGamal、ECC 等,它们都基于一些数学难题,如大数分解、离散对数、椭圆曲线等,使得破解非对称加密非常困难。但是,非对称加密也有一些潜在的风险,如中间人攻击、随机数生成器的安全性、量子计算机的威胁等,因此需要不断地更新和完善非对称加密的技术和标准⁴。
参考链接:
(1) 图文彻底搞懂非对称加密(公钥密钥) - 知乎 (zhihu.com)
(2) 公开密钥加密 - 维基百科,自由的百科全书 (wikipedia.org)
(3) 对称加密和非对称加密的区别-CSDN博客
(4) 对称加密和非对称的加密 的优缺点和理解 - 知乎 (zhihu.com)
(5) 【计算机网络】对称加密、非对称加密和Hash加密的介绍和区别_hash是对称还是非对称-CSDN博客
环境变量之间是怎么替换的?比如开发环境、测试环境和部署环境
我的答案:通过env.development切换
环境变量是一种用于存储和传递不同环境中的配置信息的变量,它们可以影响程序的运行行为和结果。环境变量之间的替换,是指在不同的环境中,使用不同的环境变量的值,以适应不同的需求和场景。环境变量之间的替换,有以下几种常见的方法:
- 使用
配置文件
:这种方法是将不同环境中的环境变量的值,保存在不同的配置文件中,例如 dev.env,test.env,prod.env 等。然后在程序中,根据当前的环境,选择加载对应的配置文件,从而获取环境变量的值。这种方法可以方便地管理和维护不同环境的配置,但是也需要注意配置文件的安全性和版本控制¹²。 - 使用
命令行参数
:这种方法是在运行程序时,通过命令行参数来传递不同环境中的环境变量的值,例如 node app.js --env=dev,node app.js --env=test,node app.js --env=prod 等。然后在程序中,根据命令行参数,设置或覆盖环境变量的值。这种方法可以灵活地控制不同环境的运行,但是也需要注意命令行参数的格式和规范³ 。 - 使用
环境变量管理工具
:这种方法是使用一些专门的工具或库,来帮助管理和替换不同环境中的环境变量的值,例如 dotenv,cross-env,env-cmd 等。这些工具或库可以根据不同的规则和方式,来自动或手动地加载和设置环境变量的值,从而简化开发和部署的流程 。
询问技术面试官的问题
我询问的问题:
- 实习相关问题
- 实习工资(行政)
- 负责什么开发,前端还是后端
- 使用什么框架
推荐问题:
询问技术面试官的问题,是一种展示你对职位和公司的兴趣和热情的好方法,也是一种了解你未来可能工作的环境和文化的机会。你想询问技术面试官的问题,应该根据你自己的情况和目标来选择,但是一般来说,有以下几个方面的问题是比较常见和有用的:
-
关于技术栈和工具的问题:你可以询问技术面试官,他们使用的技术栈和工具是什么,为什么选择这些技术栈和工具,以及他们对这些技术栈和工具的评价和建议。这样可以让你了解他们的技术水平和偏好,以及你是否能够适应和学习他们的技术栈和工具。例如,你可以问:
- 你们使用的主要编程语言和框架是什么?你们是如何选择和评估这些技术的?
- 你们使用的开发和部署工具是什么?你们是如何保证代码的质量和安全性的?
- 你们使用的测试和调试工具是什么?你们是如何进行单元测试,集成测试,性能测试等的?
-
关于项目和任务的问题:你可以询问技术面试官,他们目前或者未来的主要项目和任务是什么,以及他们的项目和任务的难点和挑战是什么。这样可以让你了解他们的工作内容和目标,以及你是否能够为他们的项目和任务做出贡献和创新。例如,你可以问:
- 你们目前或者未来的主要项目是什么?你们的项目有什么特别的需求或者目标吗?
- 你们在项目中遇到过什么技术上的难点或者挑战吗?你们是如何解决或者克服的?
- 你们在项目中使用了什么新的或者有趣的技术或者方法吗?你们是如何学习和应用的?
-
关于团队和文化的问题:你可以询问技术面试官,他们的团队的规模和结构是什么,以及他们的团队的文化和氛围是什么。这样可以让你了解他们的团队的合作和沟通方式,以及你是否能够融入和享受他们的团队的文化和氛围。例如,你可以问:
- 你们的团队有多少人?你们的团队是如何分工和协作的?
- 你们的团队的沟通方式和频率是什么?你们是如何进行代码审查,反馈,讨论等的?
- 你们的团队的文化和价值观是什么?你们是如何培养和保持团队的凝聚力和信任的?
相关文章:
Vue真实技术面试题解析【兄弟组件、vue-router、增量部署】
兄弟组件的传值方式,有两种方式,把你尽可能知道的告诉我 我的答案:使用父组件传值 和 状态管理传值 使用事件总线(Event Bus):创建一个空的 Vue 实例作为事件总线,在其中定义事件和对应的处理函…...

响应式生活常识新闻博客资讯网站模板源码带后台
模板信息: 模板编号:30483 模板编码:UTF8 模板分类:博客、文章、资讯、其他 适合行业:博客类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写DIVCSS&a…...

获取AAC音频的ADTS固定头部信息
文章目录 前言一、AAC音频中的ADTS二、解析ADTS信息1.标准文档中介绍2.解析3.采样率索引和值4.下载AAC标准文档 前言 调试嵌入式设备中播放aac音频的过程中,了解了aac音频格式,记录在此,防止遗忘。 一、AAC音频中的ADTS ADTS(Audi…...
二分查找--C++实现
1. 简介 满足有序性,每次排除一半的可能性。 2. 实现 2.1 手写 int bin_search(vector<int> &arr,int v) {int hi arr.size() - 1;int lo 0;while ( lo < hi){int mid (lo hi) >> 1;if (arr[mid] < v)lo mid 1;elsehi mid - 1;}re…...
计算机毕设 基于机器学习的文本聚类 - 可用于舆情分析
文章目录 0 简介1 项目介绍1.1 提取文本特征1.2 聚类算法选择 2 代码实现2.1 中文文本预处理2.2 特征提取2.2.1 Tf-idf2.2.2 word2vec 2.3 聚类算法2.3.1 k-means 2.3.2 DBSCAN2.4 实现效果2.4.1 tf-idf k-means聚类结果2.4.2 word2vec k-means 聚类结果 最后 0 简介 今天学…...

uniApp获取当前位置经纬度
以下是使用uni.getLocation获取当前位置的示例代码: 调用uni.getLocation方法获取当前位置信息 uni.getLocation({type: wgs84, // 坐标类型,默认为wgs84,可选的值为gcj02和bd09llsuccess: res > {// 获取成功,经度和纬度在r…...

this.$message提示内容添加换行
0 效果 1 代码 let msgArr [只允许上传doc/docx/xls/xlsx/pdf/png/jpg/bmp/ppt/pptx/rar/zip格式文件,且单个文件大小不能超过20MB,已过滤无效的文件] let msg msgArr.join(<br/>) this.$message({dangerouslyUseHTMLString: true,message: msg,type: warning })...

“三大阶段稳定性测试”筑牢长安链信任基石
前言 随着长安链应用生态的不断丰富、面对的应用场景更加多元,稳定性测试在长安链测试流程中占到越来越重要的位置。本文将介绍长安链稳定性测试的发展历程及如何通过三大阶段稳定性测试应对不断出现的复杂的商业需求,筑牢长安链信任基石。 功能测试和…...

手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队
mybatisplus 的常用CRUD方法 众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。 他的BaseMapper中定义了这些常用的C…...

Spring Data JPA 项目配置与QueryDSL集成
一、说明 Spring Data JPA通过Spring Initializer创建时勾选相关依赖即可引入,QueryDSL需要单独引入。Spring JPA针对QueryDSL有比较好的兼容性,可以实现优雅的SQL构建。 二、设置JPA默认配置(yaml格式) spring:jpa:hibernate:…...

UE5数字孪生制作-数据篇(二) - 数据处理
1.卫星图与DEM高度图坐标一致处理 https://www.bilibili.com/video/BV1op4y1V71r?p4&vd_source707ec8983cc32e6e065d5496a7f79ee6 坐标系的调整 如何使用临时图层,对其他数据层进行裁切 (1)创建临时图层 (2)在临…...

Java 设计模式——享元模式
目录 1.概述2.结构3.实现3.1.抽象享元3.2.具体享元3.3.享元工厂3.4.测试 4.优缺点5.使用场景6.JDK 源码解析——Integer 类 1.概述 (1)享元模式 (Flyweight Pattern) 是一种结构型设计模式,主要通过共享对象来减少系统中的对象数量ÿ…...
再扩国产化适配版图,长安链新增数据库兼容性认证
基础软件的自主可控影响着国家信息安全与产业技术发展是否受制于人。实现真正长期可持续的技术自主可控,需要再进一步的是让国产化信息系统生态更有”活性“,基础软件之间、基础软件与其他国产上层应用的互相兼容、互相促进,共同繁荣发展&…...

MES系统数据集成系统源码
MES系统数据集成系统源码 1 MES的生产计划管理综述 生产计划的管理在MES系统中是非常重要的。我们知道,一般的情况下,企业的生产计划是由上层管理系统ERP来完成,那么MES中的生产计划和ERP的生产计划的不同点在于: ERP的生产计划…...
关于道一云-七巧使用感悟
低代码,开发快速,缺点组件比较少但能满足大多数场景,如果需要的话得自己造,官方的技术群里面普遍问题响应就很快,技术文档这个会抽风,有些代码就改个筛选条件本地死活运行不了,去官网那里问他们…...

去中心化数据云项目Oort主网即将上线
备受期待的去中心化数据云项目Oort,今日已通过官方X账号官宣,将于纽约时间11月27日正式上线主网Olympus Protocol。届时,用户也能够通过Oort的Ale Wallet钱包和开发者API使用主网,并可通过OORT浏览器查询交易和合约,开…...
CSS知识点梳理(一)
CSS 是层叠样式表(Cascading Style Sheets)的缩写,它是一种用于描述 HTML 或 XML(包括如 SVG、MathML 等派生语言)文档呈现的语言。CSS 可以用来控制文档的布局、颜色、字体等外观属性。 CSS 的主要特点包括ÿ…...

网络安全深入学习第八课——反向代理(工具:frp)
文章目录 一、实验环境二、实验要求三、开始模拟1、攻击机配置frp文件2、攻击拿下跳板机,并且上传frpc.ini、frpc.exe、frpc_full.ini文件3、把frps.ini、、frps.exe、frps_full.ini文件放到VPS主机上4、VPS机开启frp5、跳板机开启frp6、验证 一、实验环境 攻击机&…...

浅谈前端自定义VectorGrid矢量瓦片样式
目录 前言 一、VectorGrid相关API介绍 1、VectorGrid 2、 LayerStyles样式详解 二、样式自动配置 1、页面定义 2、地图及PBF瓦片引入 3、矢量瓦片样式定义 4、鼠标事件交互 三、最终效果 1、自定义样式展示 2、鼠标交互 总结 前言 在上一篇博客中,详细讲…...

Qt5多线程<12>
1.多线程的简单实现 <1> 在头文件threaddlg.h声明用于界面显示所需的控件,其代码如下: #ifndef THREADDLG_H #define THREADDLG_H#include <QDialog> #include <QPushButton> #include "workthread.h" #define MAXSIZE 5class ThreadDlg : publ…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...