关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol79-如何优雅的使用-Go

Go 是 Google 开发的一种动态强类型、编译型、并发型,并具备垃圾回收性能的编程语言。 本期技术周刊一起理解 Go,欢送大家浏览 ~ 文章举荐Golang 如何优雅接入多个近程配置核心? // 王中阳Go viper是实用于go应用程序的配置解决方案,这款配置管理神器,反对多种类型、开箱即用、极易上手。 本地配置文件的接入能很疾速的实现,那么对于近程apollo配置核心的接入,是否也能很疾速实现呢?如果有多个apollo实例都须要接入,是否能反对呢?以及apollo近程配置变更后,是否能反对热加载,实时更新呢? 【Go 根底篇】彻底搞懂 Channel 实现原理 // 程序员祝融 最近大家私信我让我说说 Go 语言中的 Channel,有的人曾经开始筹备面试,真快呀!明天咱们就来说说 Channel吗,日常开发中应用也是比拟频繁的,面试也是高频。听我慢慢说来。 Channel (通道) 是 Go 语言高性能并发编程中的外围数据结构和与 Goroutine 之前重要的通信形式。在 Go 语言中通道是一种非凡的类型。通道像一个传送带或者队列,遵循先入先出(First In First Out)的规定,保障收发数据的程序。 PHP 转 Go 实际:xjson 解析神器「开源工具集」 // 王中阳Go xutil:明天分享的文章源自于开源我的项目jinzaigo/xutil的封装。在封装过程中,劲仔将实现原理以及相干实际思考,写成文章分享进去,从而汇总系列文章汇合。 PHP转Go:我和劲仔都是PHP转Go,身边越来越多做PHP的敌人也逐步在用Go进行重构,重构过程中,会发现php的json解析操作(系列化与反序列化)是真的香,弱类型语言的各种隐式类型转换,很大水平的减低了程序的复杂度。 反观go应用规范库encoding/json,来做json解析就没有那么欢快了(只有数据类型定义不对,就很容易抛error) 写给 go 开发者的 gRPC 教程-通信模式 // liangwt 前文提到过 protobuf 协定是平台无关的。演示的客户端和服务端都是 golang 的,即便客户端和服务端不同语言也是相似的能够通信的 对于下面介绍的的这种相似于 http1.x 的模式:客户端发送申请,服务端响应申请,一问一答的模式在 gRPC 里叫做 Simple RPC (也称 Unary RPC)。gRPC 同时也反对其余类型的交互方式。 Go 语言解析 JSON // 宇宙之一粟 ...

January 31, 2023 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol78-Git-必看技术补给

Git 的诞生是一个十分乏味的故事。1991年 Linus 开源了 Linux 内核,有数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何治理呢?起初 Linus 应用 BitKeeper(BitMover 公司的版本控制软件)治理 Linux 的外围开发,起初 BitMover 进行了对 Linux 的反对,于是 Linus 秉承本人的版本本人写的精力,花了两周工夫本人用 C 写了一个分布式版本控制系统,这就是 Git。 本期技术周刊一起理解 Git,欢送大家浏览 ~ 文章举荐Git 操作不标准,战友提刀来相见! // 王中阳Go 问题形容: 小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开发新性能。小A在我之前把代码提交到了测试分支,我想提交我的新性能代码到测试分支时发现巨多抵触,脑袋霎时就炸了,Boom一声惊雷响啊。剖析一下: 首先解决抵触浪费时间,我的新性能代码每次提测到测试分支都须要解决抵触。我在测试分支解决抵触,只能依照小A优化后的代码逻辑的去解决,和我本人的分支逻辑并不统一。交付给测试同学的测试分支代码,和我本人分支的代码不统一,这种测试是没有意义的。好慌,我代码没了!不会是变基变出问题了吧? // Kagol 前两天检视代码时,发现PR外面有两个提交的形容信息截然不同,于是我提出应该将这两个提交合并成一个,放弃提交树的清晰。 先储存起来!而共事这时正在开发别的个性,工作区不是洁净的,没法间接执行 git rebase 操作,于是很天然地执行 git stash将正在批改的内容保留到一个栈中,并维持当前工作区洁净。这样就能够执行切换分支、变基等操作,这些操作能执行的前提是当前工作区是洁净的。 工作中如何应用 Git // 沐华 本文将从 Git 入门到进阶、由浅入深,从常用命令、分支治理、提交标准、vim 基本操作、进阶命令、抵触预防、抵触解决等多方面开展,足以轻松应答工作中遇到的各种疑难杂症,如果感觉有所帮忙,还望看官高抬贵手给个赞呗,感激 虽说当初工作中应用 Git 都会用一些图形化管理工具来进步开发效率。可事实上应用图形治理化工具的前提,也是基于对命令都根本理解。还有比方我平时用的工具 GithubDesktop 因为不带第三方合并工具,只能手动解决抵触,而且有的性能没有,只能配合本人手动敲命令。 即便是工具也没有那么完满的工具,把握命令才是渔,工具只是鱼。其余的 Git 可视化管理工具比方:小乌龟、SourceTree、还有咱们开发用的 IDE 集成的,本期就不过多介绍了 Git 分支管理策略汇总 // alwaysbeta 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何治理的,以及应该怎么提交代码? 我大略说了一些规定,但认真想来,如同也并没有造成一个清晰标准的流程。所以查了一些材料,总结出上面这篇文章,一共蕴含四种常见的分支管理策略,分享给大家。 ...

January 17, 2023 · 2 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol77-探究关于-iOS-的特性

本期技术周刊一起探索对于 iOS 的个性,欢送大家浏览 ~ 文章举荐探索 iOS 内存问题 // 杭城小刘 本文从 Tagged Pointer、objc 源码、dealloc 原理、AutoreleasePool 原理、野指针探索等技术点开展聊了聊 iOS 内存相干问题。 一行代码解决 Scrollview 和 TextInput 焦点获取问题 // 似水流年 通过日志以及逻辑剖析发现两个问题: 第一次点击列表项无奈触发onPress点击事件第一次点击其实是使输入框失去焦点并暗藏键盘晓得问题在哪就有解决问题的方向了:点击列表项使输入框主动失去焦点,并触发onPress点击事件。 【 iOS 】UITextField 输出长度限度时,中文输入法导致的输出问题 // Lynx 当咱们有 UITextField 或者 UITextView 最大输出长度需要的时候,会面临一个问题,那就是如果咱们应用零碎输入法或者其余输入法的时候,在输出最初几个文字的时候,因为局部输入法会将拼音字母等高亮字符展现在输入框内,这时候输出长度就可能超过最大长度,从而导致最初几个文字输出失败,只管这时候文字还没到最大输出长度。 技术总监:尽快解决这个 ios11 白屏问题 // 牛仔很busy 1 why:为什么会白屏呢?首先,只有 ios11 才会呈现,阐明不是没有返回 html,从景象来看能够证实,页面上显示了题目,只是没有内容。通过抓包发现,的确有返回html。根本能够必定,问题呈现在浏览器这一层,也就是上图的红色局部。 2 why:为什么没有内容?抓包发现有返回 html,也返回了入口 js,也就是 app.xxx.js 和 chunk-vendors.xxx.js。有 js,但没内容,那有两种可能: 入口js没有执行入口js执行报错了,导致前面渲染页面的代码没有执行一次 IOS 告诉推送问题排查全过程 // 扣钉日记 发现问题:在上周一个将要上班的夜晚,测试忽然和我打招呼,说IOS推送的修复更新上线后存在问题,后盾报错。连忙跑到测试那里看报错详情,报错如下: iOS 之 SwiftSwift 编译器之蛊惑行为一 // rickytan OptionSet 是 Swift 中比拟罕用的一个内置协定,它的存在算是填补了既要强类型,又要反对按位取与的空白,是对 OC 中 NS_OPTIONS 的桥接。从申明上能够看到,OptionSet 协定自身又遵从 SetAlgebra 协定,后者只定义了常见的汇合操作方法,如 union remove insert 等,而前者在 extension 中给了默认实现 ...

January 10, 2023 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol76-破解-Javascript-玩法

本期技术周刊一起理解 Javascript,欢送大家浏览 ~ 文章举荐浅谈 Javascript 闭包 // magnesium 闭包的概念是有很多版本,不同的中央对闭包的说法不一 维基百科:在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在反对头等函数的编程语言中实现词法绑定的一种技术。 MDN: 闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境)的援用的组合。 集体了解: 闭包是一个函数(返回一个函数)返回的函数保留了对外变量援用JS 如何返回异步调用的后果? // 事实的现实技术 在 JS 中解决异步调用的后果,最佳实际就是“异步转同步”:应用 Promise + async/await 语法关键字。在这里 async 总是与 await 成对呈现,一个 async 函数总是返回一个 Promise,一个 await 关键字总是在尝试“解开”一个 Promise,终局要么等到有价值的数据,要么异步呈现异步,什么也没有等到。为了防止出现异常,影响主线程的失常运行,个别要用 catch 躲避异样。 从 await-to-js 到 try-run-js // jump__jump 之前在做 code review 时候发现有共事应用 try catch 包装了一堆异步代码,于是集体就感觉很奇怪,难道不应该只 catch 可能出问题的代码吗?共事通知我说 try catch 太细的话会呈现内外作用域不统一,须要提前申明变量。 let res: Data[] = [];try { res = await fetchData();} catch (err) { // 错误操作或者终止 // return}// 继续执行失常逻辑前端性能优化到底该怎么做 // 熊的猫 ...

January 3, 2023 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol75-简简单单画个图

本周技术周刊一起简略画个“图”,欢送大家一起试一试~ 文章举荐原来 Canvas 也能间接绘制圆角矩形了 // XboxYan 很多时候,在应用 Canvas 绘制圆角矩形都是一件比拟麻烦的事,因为之前并没有间接的办法,只能通过直线和圆弧间接组合而成,上面是一个惯例绘制形式 ctx.beginPath();ctx.moveTo(x + r, y);ctx.arcTo(x + w, y, x + w, y + h, r);ctx.arcTo(x + w, y + h, x, y + h, r);ctx.arcTo(x, y + h, x, y, r);ctx.arcTo(x, y, x + w, y, r);ctx.closePath();这里x、y、w、h、r别离代表x坐标、y坐标、宽度、高度、圆角。 这段代码应该是最精简的了,尽管不是特地简单,然而应该很少有人能间接手写,次要是不够语义化,比拟繁琐。 而圆角矩形又是一个十分常见的性能需要,为此,Canvas 在Chrome 99轻轻推出了一个新的办法:roundRect(),花一分钟理解一下 应用 Canvas API 模仿一个黑白时钟 // zkrisj <canvas> 最早由 Apple 引入 WebKit,用于 Mac OS X 的 Dashboard,随后被各个浏览器实现。现在,所有支流的浏览器都反对它。Canvas API 提供了一个通过JavaScript 和 HTML的 <canvas> 元素来绘制图形的形式。它能够用于动画、游戏画面、数据可视化、图片编辑以及实时视频解决等方面。Canvas 适宜绘制大数据量图形元素的图表(如热力求、天文坐标系或平行坐标系上的大规模线图或散点图等),也适宜实现某些视觉特效。它还能可能以 png、jpg 或 webp 格局保留图像。Canvas 提供了弱小的 Web 绘图能力,所以咱们要学会应用它。我用 Canvas 带你看一场流星雨 // 南玖 ...

December 27, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol74-浅谈-Android-进阶指北

本期技术周刊一起理解 Android,欢送大家浏览 ~ 外围常识进阶Android 开发中的SSL pinning // xiangzhihong 在日常的平安浸透过程中,咱们常常会遇到瓶颈无处下手,这时候如果攻击者从 APP 进行冲破,往往会有很多惊喜。然而目前市场上的APP都会为避免他人歹意盗取和歹意篡改进行一些保护措施,比方模拟器检测、root 检测、APK 加固、代码混同、代码反调试、反脱壳、签名校验等等反抗机制。而测试人员对APP进行浸透的首步操作通常就是上 burp 或者 Charles 这类抓包工具进行抓包,查看申请记录里的域名及链接地址是否能够进一步利用。 咱们都晓得 http 协定传输的是明文信息,是能够间接捕捉的,从而造成了数据泄露。为了避免中间人的拦挡,呈现了 HTTPS 加密机制。在 HTTPS 中,应用了证书+数字签名解决了抓包的问题,这里用到了两个概念:数字签名和数字证书。 TheRouter 的跨模块依赖注入实现原理 // 张涛 TheRouter 用于跨模块通信设计的 ServiceProvider,外围设计思维是参考了 SOA (面向服务架构)的设计形式。 具体到 Android 侧就是 AIDL 相似的实现。 模块化能力反对项: 反对跨模块依赖注入反对自定义注入项的创立规定,依赖注入可自定义参数反对自定义服务拦挡,单模块 mock 调试反对注入对象缓存,屡次注入 只会 new 一次对象 Android 平台上 ABI 的确认 // 戈壁老王 ABI 即 Application binary interface,是 CPU 与指令集专属的应用程序二进制接口。它定义了一套规定,容许编译好的二进制指标代码能在所有兼容该ABI的操作系统中无需改变就能运行。不同的 Android 设施应用不同的 CPU,而不同的 CPU 反对不同的指令集。 ABI 蕴含以下信息: 可应用的 CPU 指令集(和扩大指令集)。运行时内存存储和加载的字节程序。Android 始终是 little-endian。在利用和零碎之间传递数据的标准(包含对齐限度),以及零碎调用函数时如何应用堆栈和寄存器。可执行二进制文件(例如程序和共享库)的格局,以及它们反对的内容类型。Android 始终应用 ELF。如何重整 C++ 名称。 ...

December 20, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol68-JavaScript-有哪些高阶玩法

JavaScript 是一门弱类型的动静脚本语言,反对多种编程范式,包含面向对象和函数式编程,被宽泛用于 Web 开发。 一般来说,残缺的 JavaScript 包含以下几个局部: ECMAScript,形容了该语言的语法和根本对象文档对象模型(DOM),形容解决网页内容的办法和接口浏览器对象模型(BOM),形容与浏览器进行交互的办法和接口它的根本特点如下: 是一种解释性脚本语言(代码不进行预编译)。次要用来向 HTML 页面增加交互行为。能够间接嵌入 HTML 页面,但写成独自的 js 文件有利于构造和行为的拆散。本期技术周刊一起理解下 JavaScript ,欢送大家浏览 ~ 文章举荐《如何在 JavaScript 中应用高阶函数》作者:chuck 你兴许据说过,JavaScript 函数是一等公民。这意味着,在 JavaScript 中函数是对象。 它们的类型是 Object,它们能够作为一个变量的值被调配,而且它们能够像其余援用变量一样被传递和返回。 一等函数赋予了 JavaScript 非凡的能力,使咱们可能从高阶函数中获益。 因为函数是对象,且 JavaScript 是风行的编程语言之一,因而其反对函数式编程的原生办法。 事实上,一等函数是 JavaScript 的原生办法。我敢打赌你在应用他们的时候甚至都没有想过正在应用函数。 《一个对于 D3js 学习的仓库建设了!》 作者:wlove D3 外部模块的深刻解说 有一个零碎整体认知Analysis- examples 剖析场景的例子Observable D3 团队分享示例的环境介绍第一点作为重点, 本系列会残缺涵盖 D3 概念, 比方:抉择、连贯、数据申请、缩放函数、事件处理和转换。 《我让虚构 DOM 的 diff 算法过程动起来了》 作者:街角小林 去年写了一篇文章手写一个虚构 DOM 库,彻底让你了解 diff 算法介绍虚构 DOM 的 patch 过程和 diff 算法过程,过后应用的是双端 diff 算法,往年看到了 Vue3 应用的曾经是疾速 diff 算法,所以也想写一篇来记录一下,然而必定曾经有人写过了,所以就在想能不能有点不一样的,上次的文章次要是通过画图来一步步展现 diff 算法的每一种状况和过程,所以就在想能不能改成动画的模式,于是就有了这篇文章。当然目前的实现还是基于双端 diff 算法的,后续会补充上疾速 diff 算法。 ...

November 8, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol67-优秀的-React-厉害在哪

来自 React 的 “Hello, world!” ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root'));React 是一个用于构建用户界面的 JavaScript 库。 React 使创立交互式 UI 变得轻而易举。为你利用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染适合的组件。 本期技术周刊一起理解下 React ,欢送大家浏览 ~ 文章举荐《React 外部是如何实现 cache 办法的?》 作者:卡颂 前几天写的一篇介绍 use 这个新 hook 的文章中聊到 React 原生实现了一个缓存函数的办法 —— cache。 对于如下代码,被 cache 包裹的函数,当屡次调用时,如果传参不变,会始终返回缓存值: const cacheFn = cache(fn);cacheFn(1, 2, 3);// 不会执行fn,间接返回缓存值cacheFn(1, 2, 3);React 内为什么须要 cache 办法呢? 《一文解读 React 17 与 React 18 的更新变动》 作者:JackySummer 我的项目目前react17和react18都有应用,但在开发者角度绝大部分场景还是感知不到多大变动,但也要具体理解分明具体更新了什么。本文就来一次性梳理下 react17与react18的变动。 《一个乏味的交互成果的剖析与实现》 作者:夕水 依据视频所展现的成果,咱们得出了咱们须要实现的成果次要有 2 个局部: 拖拽并吸附滚动半隐元素那么如何实现这 2 个成果呢?咱们一个成果一个成果的来剖析。 ps: 因为这里采纳的是 react 技术栈,所以这里以 react 作为解说首先对于第一个成果,咱们要想实现拖拽,有 2 种形式,第一种就是 html5 提供的拖拽 api,还有一种就是监听鼠标的 mousedown,mousemove 和 mouseup 事件,因为这里兼容的挪动端,所以我采纳的是第二种实现办法。 ...

November 1, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol66-这些写-CSS-的新姿势你还不知道

CSS 是凋谢网络的外围语言之一,由 W3C 标准实现跨浏览器的标准化。 CSS 节俭了大量的工作;款式能够通过定义保留在内部.css 文件中,同时管制多个网页的布局,这意味着开发者不用经验在所有网页上编辑布局的麻烦。 CSS 被分为不同等级: CSS1 现已废除CSS2.1 是举荐规范CSS3 分成多个小模块且正在标准化中CSS 形容了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。 本期技术周刊一起理解下 CSS ,欢送大家浏览 ~ 文章举荐以下是专栏板块对于 CSS 的相干文章《CSS 实现自适应文本的头像》作者:XboxYanAnt-design 中有一个这样的头像组件,当字符串较长时,字体大小能够依据头像宽度主动调整,成果如下当然,这里是通过JS依据字符数量主动缩放文本实现的而当初,仅仅通过 CSS也能达到相似的成果,一起看看吧 《应用 CSS 变量实现主题定制真的很简略》作者:街角小林Varlet是通过css变量来组织款式的,什么是css变量呢,其实很简略,首先申明自定义的css属性,轻易申明在哪个元素上都能够,不过只有该元素的后辈能力应用,所以如果要申明全局所有元素都能应用的话,能够设置到根伪类:root下: :root { --main-bg-color: red;}如代码所示,css变量的自定义属性是有要求的,须要以--结尾。 《超强的纯 CSS 鼠标点击拖拽成果》作者:chokcoco鼠标拖拽元素挪动,算是一个略微有点点简单的交互。 而在本文,咱们就将打破常规,向大家介绍一种超强的仅仅应用纯 CSS 就可能实现的鼠标点击拖拽成果。 在之前的这篇文章中 -- 不堪设想的纯 CSS 实现鼠标追随,咱们介绍了十分多有意思的纯 CSS 的鼠标追随成果,像是这样: 然而,能够看到,下面的成果中,元素的挪动不是很丝滑。如果你理解上述的实现形式,就会晓得它存在比拟大的局限性。本文,咱们还是仅仅通过 CSS,来实现一种丝滑的鼠标点击拖动元素挪动的成果。 《纯 CSS 实现 | 可恶的小怪兽动画》作者:小棉花明天来给大家介绍一下纯 css 实现活泼可爱的小怪兽动画成果,本文波及的知识点看过后面的文章应该也有所理解,html+css,css3 动画成果,还有遮罩层应用。上面来给大家具体介绍一下整个制作的过程。 《一起来观赏 9 个冷门的 CSS 属性》作者:lulu_up可能咱们有时候潜意识里认为, 以后理论开发中 css 属性曾经足够用了, 然而前段时间忽然想到:"会不会咱们只是思维被限度在了罕用的 css 属性中, 从而丢失了创造力", 就像创造车之前大多数人会认为骑马曾经足够快能够满足本人的需要了, 所以我专门整顿了一下本人的学习笔记并且专门去学习了一些冷门的 css 属性, 果然播种满满, 所以明天也要在这里把这些脑洞大开的属性较少给你, 筹备好一起来感触css的魅力吧。 ...

October 25, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol65-Vite-是不是在重复造轮子

Vite 是一种前端构建工具,可能显著晋升前端开发体验。它次要由两局部组成: 一个开发服务器,它基于 原生 ES 模块 提供了 丰盛的内建性能,如速度快到惊人的 模块热更新(HMR)。一套构建指令,它应用 Rollup 打包你的代码,并且它是预配置的,可输入用于生产环境的高度优化过的动态资源。Vite 意在提供开箱即用的配置,同时它的 插件 API 和 JavaScript API 带来了高度的可扩展性,并有残缺的类型反对。 本期技术周刊一起理解下这个前端构建工具 Vite ,欢送大家浏览 ~ 文章举荐以下是专栏板块对于 Vite 的相干文章《【Vite 实际】Vite 库模式能满足你吗?或者你须要对立构建》作者:Samon 因为没有特地好的叫法,自己暂且把这叫做对立构建,自己把对立构建演绎为如下构建: Bundle 构建 即 Vite(也是 Rollup)的库打包模式,单输出文件,单输入 bundle 文件,如果没有设置内部依赖(external)所有波及的依赖包都会打包到一个 bundle 文件中。 长处:反对 umd 格局,浏览器中可作为内部依赖,不受业务代码 bundle 影响,可利用浏览器缓存机制,进步加载性能。 毛病:不反对 Tree Shaking 没有应用到的代码也会加载进来,因为打包到一个 bundle 文件,本地源码可读性差。 《【应用Vite构建工具疾速创立Vue我的项目(Vue3.0我的项目开发)》作者:TANKING 本文将进行该项目标开发和公布。目前的Vue版本是3.0.4,通过Vite的打包,就能够部署到服务器进行公布。 组件化开发 vue我的项目的长处就是组件化开发,将每个性能、或者是每个页面、容器分成各个组件,一方面是便于保护,另一方面是多人开发的时候也是能够提高效率。能够减少代码的复用性、可维护性和可测试性。进步开发效率,不便重复使用,简化调试步骤,晋升整个我的项目的可维护性,便于协同开发,是高内聚、低耦合代码的实际。 代码目录中的 components 目录就是组件的目录,在这里能够依据本人的我的项目去创立各个组件,间接在组件外面写html代码、以及调用vue的api去实现很多性能,例如axios网络申请,同时,组件内也能够写css款式。 《Vite 多页面利用配置&应用 vite-plugin-html 向 html 模板注入数据或标签》作者:老猫抽旱烟 在开发过程中,简略地导航或链接到 /nested/ - 将会按预期工作,与失常的动态文件服务器体现统一。 也就是说,如果你的文件夹有如下层级: { src: { pages: { demo1: { App.vue main.ts }, demo2: { App.vue main.ts }, demo1.html demo2.html } }}那么通过 vite 的开发服务器拜访你的页面,须要拜访localhost:3000/src/pages/demo1.html#/index 这样的链接,打包后index.html 也会呈现在 dist/src/pages 文件夹下,很不不便。《vite — 超快且不便的编译工具》作者:一颗冰淇淋 ...

October 18, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-浅谈如何使用-Webpack

本期技术周刊一起理解 Webpack ,欢送大家浏览 ~ 文章举荐《详解 Webpack devtools》 作者:Shenfq 最近在开发一个低代码平台,次要用于经营搭建 H5 流动。这两头波及到第三方组件的开发,而第三方组件想要接入平台,须要通过咱们特定的打包工具来 build。构建之后的组件,会合并成单个的 js 文件,而且代码会被压缩会混同,这个时候如果须要调试,那就会极其苦楚。想要有一个好的调试环境,就要波及 SourceMap 的输入,而 Webpack 的 devtools 字段就是用于管制 SourceMap。《基于 Webpack 搭建 Chrome 扩大开发环境》作者:不羁的风 Chrome扩大开发是目前比拟火爆的畛域,作为市场占有率第一的浏览器,有海量用户撑持。同时,Chrome扩大能够无缝对接Edge浏览器,不可不谓一举两得。本文将介绍如何应用webpack构建一个反对Typescript的开发环境,在此基础上,实现一个能够批改网页背景的扩大利用。《Webpack 源码 - Webpack 把 react 编译成 weapp》作者:perkz 在package.json中能够找到入口文件这个文件的作用就是引入webpack外围函数(lib/webpack.js)以及工具文件,抛出整顿好之后的webpack外围函数《如何应用 Webpack 优化 moment.js》作者:记得要微笑 荡涤moment语言环境文件默认状况下,当您编写var moment = require('moment')代码并应用 webpack 打包时,捆绑文件的大小会变得很重,因为webpack 会捆绑所有Moment.js 所有语言环境文件(在 Moment.js 2.18.1 中,压缩后的 KB 为 160)。《Wuzzle,进行基于 Webpack 的 JS 转译》作者:乌柏木 转译器(transpiler)是指可能进行文件到文件一对一转换的编译器(compiler)。在 JS 世界中,常见的开箱即可用的转译器有 typescript cli、babel cli 等,但他们个别只解决 .js、.ts 等脚本文件。而 webpack 只管能通过配置解决各种文件,但他更关注如何打包 JS,做文件一对一转换相当麻烦。为了解决这些局限,wuzzle 作为配置 webpack 编译的补充者,提供了基于 webpack 封装的 JS 转译命令 wuzzle transpile,以下是具体用法。《前端构建效率优化之路》作者:chokcoco ...

October 11, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-学-Java-能做什么

本期技术周刊一起理解 Java 语言?,欢送大家浏览 ~ 文章举荐《玩转 Flowable 流程实例》 作者:江南一点雨 明天咱们持续来聊聊流程实例。部署之后的流程,这个还不能间接运行,例如咱们部署了一个销假流程,当初 zhangsan 想要销假,他就须要开启一个销假流程,lisi 想销假,他也须要开启一个销假流程,这一个一个开启的销假流程就是流程实例,而咱们一开始部署的销假流程,则相似于一个模版,基于此模版,咱们能够开启很多个具体的流程实例。从这个角度来说,上篇文章咱们定义的 ProcessDefinition 就相似于一个 Java 类,明天咱们要介绍的 ProcessInstance 则相当于一个 Java 对象。《Java 反射真正的详解,学以致用,实战案例,虽不迭万字,但也已有近 8000 字》作者:宁在春 作为 Java 开发者,你认为反射这个知识点重要水平,在你心里是什么样的呢?以前我也只感觉反射十分重要,但总归是听这个文章说,听那个敌人说,学是学了,但却没怎么利用。当我正式进入到社会当 cv 仔的时候,须要思考的问题多了,缓缓思考问题了,就感觉反射是个力大无穷的货色,更会感觉反射是个无所不能的货色,如各种各样的框架的底层,各种各样的拦截器的实现,反射都是其中少不了的一部分~如果平时着重于开发业务的话,那么的确会较少应用到反射机制,但并非是说反射它不重要,反射它可是搭建脚手架的根底的根底勒~《微服务开发系列:开篇》作者:zxdposter 微服务现如今曾经是一个被绝大多数开发人员都熟知的概念了。网上各种微服务开发系列层出不穷,各类的微服务框架也多如牛毛。然而,在这样一种好像没什么必要介绍微服务的工夫点,我还是要给出一系列我对于微服务开发的了解。这些了解并不深奥,这些做法你可能每天都在做,某些中央你可能认为十分根底。然而在我的了解中,这些很重要,并没有花里胡哨的实现形式,技术的目标,不是为了用繁琐的办法实现简略的目标,而是为了用简略的办法,实现所有目标。因而我想介绍的框架,一切都是为了不便,不便排查,不便部署,不便开发,它只是一个不便的零碎。这些简略的技巧,浮夸的做法,不仅仅为微服务框架提供无益的设计形式,还对一些开发人员的开发习惯和对开发的了解上,也可能有着一些助力。《应用 elasticsearch 作为惟一存储源问题整顿》作者:Martin 首先es不反对事务,所以在架构设计的时候肯定要思考这一点。特地的,es在生产环境个别不容许应用脚本,更新操作都是在业务Java零碎内存中去更新,而后再刷新到es数据库,所以当多个线程并发批改时,只会有最初一条更新胜利(其实其余的线程也更新胜利了,只是被最初一个线程笼罩了),解决办法是上接口的调用者加分布式锁,或者把申请放到保障串行的音讯队列(比方kafka的同一个分区)《写个续集,填坑来了!对于“Thread.sleep(0)这一行‘看似无用’的代码”外面留下的坑。》作者:why技术 首先非常感谢浏览我文章的敌人,同时也特别感谢浏览的过程中带着本人的思考,提出有价值的问题的敌人,这对我而言是一种正反馈。我过后写的时候的确没有想到这个问题,所以当忽然问起的时候我大略晓得起因,因为未做验证,所以也不敢贸然答复。于是我寻找了这个问题的答案,所以先说论断:就是和 JIT 编译器无关。因为循环体中的代码被断定为热点代码,所以通过 JIT 编译后 getAndAdd 办法的进入平安点的机会被优化掉了,所以线程不能在循环体能进入平安点。《Java 开发:实现用户注册登录的性能》作者:三掌柜 在Java开发过程中,实现用户的注册性能是最根本的,用户通过手机号或者邮箱作为注册账号也是十分常见的操作形式,不论是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的性能实现。《Java 并发编程生产利用场景及实战》作者:咕咕鸡 从晋升性能角度来说晋升了对CPU的应用效率:目前生产的服务器大多数都是多核,标配的机器都是 8C/16G。操作系统会将不同的线程调配给不同的外围解决,实践上,有多少外围就有多少个线程并行执行。如果没有并发编程,CPU的利用率将极大的节约,假如以后正在解决耗时的 I/O 操作,那么整个CPU就会处于阻塞闲暇状态,前面的指令必须期待后面的执行完能力继续执行。升高服务 RT:大型互联网访问量轻松每秒轻松过万,如果没有并发解决,所有的用户申请都会排队期待,那种体验成果你能设想么,这样的服务能力如何能留住客户?有了并发编程,充沛开释CPU算力,操作系统让每个客户轮流应用CPU计算,每个客户都能失去疾速的响应。容错率高:线程与线程之间的执行不会互相烦扰,某个线程执行出现异常退出,不会对其它线程造成影响。问题举荐Unanswered:JPA 保留数据如何主动存储秒级工夫戳?怎么缩小该段代码的内存占用?docker java | vue 返回图片部署后的 URLMost frequent:Java继承中,代码执行程序的问题?Java,汇合中有两条数据来自远端接口,把远端接口中的数据,合并到汇合对象中?业务关系是一对多要分页,并且多的一侧能够作为查问条件,要怎么设计?忽然 java和数据库建设连贯很慢,然而navicat就秒进。服务器上也开始爆errorCode 0, state 08S01?java中返回值是一个泛型(通配符),如何从一个用通配符的对象中取到想要的值?# SegmentFault 技术周刊 # 「技术周刊」是社区特地推出的技术内容系列,一周一主题。 每周二更新,欢送「关注」。大家也能够在评论处留言本人感兴趣的主题,举荐主题相干的优良文章。 如有问题能够增加小姐姐微信~

September 27, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-你还想学-Go-语言吗

本期技术周刊一起理解 Go 语言?,欢送大家浏览 ~ 文章举荐《手写编程语言-实现运算符重载》 作者:crossoverJie 运算符重载其实并不是一个罕用的性能;因为会扭转运算符的语义,比方明明是加法却在重载函数中写为减法。 这会使得代码浏览起来艰难,但在某些状况下咱们又十分心愿语言自身能反对运算符重载。 比方在 Go 中罕用的一个第三方精度库 decimal.Decimal,进行运算时只能应用 d1.Add(d2) 这样的函数,当运算简单时... 《Golang 实现多存储驱动设计 SDK》作者:7small7 Gocache是一个基于Go语言编写的多存储驱动的缓存扩大组件。它为您带来了许多缓存数据的性能。 多个缓存驱动存储:反对内存、redis或您自定义存储驱动。反对如下性能:链式缓存:应用具备优先级程序的多个缓存(例如,内存而后回退到redis共享缓存)。可加载缓存:容许您调用回调函数将数据放回缓存中。指标缓存,可让您存储无关缓存应用状况的指标(命中、未命中、设置胜利、设置谬误……)。主动编组/解组缓存值作为构造的编组器。在存储中定义默认值并在设置数据时笼罩它们。通过过期工夫和/或应用标签缓存生效。泛型的应用。《Go clientSet Watch 运行后随机性生效》作者:建军 List 和 Watch 机制是 kubernetes 中重要的机制之一。控制器通过 API Server 的 List API 来获取所有最新版本的 API 对象,通过 Watch API 来监听所有 API 对象的变动。 在程序设计过程中,往往也须要利用 List && Watch 机制,来察看 API 对象的状态,从而调用 EventHandler,做出响应。 基于此背景,Go 语言官网的 clientSet 中提供了相应的 API 接口供开发者应用。然而,笔者在应用 Watch 机制中踩到了不小坑。 《对 Go2 错误处理提案的批评》作者:煎鱼 通过对 Go2 错误处理的设计草案的温习,咱们理解到了 check 和 handle 函数的用法和思路。再针对新的语法,又对可能产生的新问题进行了 “批评”。 总的来说,新的语法,在弊病上会减少既有的代码复杂度和可读性,能够引发各种奇怪的嵌套,还会与 if err != nil 产生反复,变成了一种新的解决形式(多了一种)。 ...

September 20, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-如何做好性能优化

本期技术周刊一起看看如何做好性能优化?,欢送大家浏览 ~ 文章举荐《近期对前端性能优化的总结》 作者:南城大前端 前端性能优化不论是在面试中还是在理论开发过程中,都是每一个前端开发工程师都必不可少的能力。本文总结自己多年开发教训中对前端性能优化的了解,心愿对大家有所帮忙,因波及的优化方向较多,针对某些细节不再具体阐明,大家有趣味的可深刻理解,话不多说,注释开始。《性能优化必备——火焰图》作者:咕咕鸡 本文次要介绍火焰图及应用技巧,学习如何应用火焰图疾速定位软件的性能卡点。联合最佳实际实战案例,帮忙读者加粗浅的了解火焰图结构及原理,了解 CPU 耗时,定位性能瓶颈。 以后现状假如没有火焰图,你是怎么调优程序代码的呢?让咱们来捋一下。 《性能优化进阶:让你的挪动端网页 1s 出现》作者:wxp686 当初的消费者越来越依赖挪动设施来拜访内容和服务,这比以往任何时候都要求更高。当他们衡量您网站上的体验时,他们不仅将您与您的竞争对手进行比拟,还会在应用完后对您的利用进行评级。 然而很多网站给用户带来的体验并不太好,以至造成潜在客户散失,所以,性能是留住用户的要害。 《前端降职问难-性能优化篇范式》作者:胡哥有话说 本文力争为你加入降职问难时,提供一个阐述性能优化相干工作的范式。简略点儿来说,就是依照这个范式文来筹备、论述,就能够赢得降职评委的认可与青睐。 痴迷写页面UI的前端千篇一律,懂得量化收益的前端万里挑一。 当初曾经不是刀耕火种的前端原始时代了,可能高保真实现页面UI是每一个前端的基本技能,“没有功绩还有苦劳”这句话也不再实用于前端降职了。你辛苦的工作可能会看在直属 leader 的眼里,晓得你为了业务天天熬夜加班,会让你年初绩效更好一些,然而在降职问难中,尤其是高职级同学的降职,根本都是跨部门、或通道评委评审的,他们是不会认为这些重复性劳动、像流水线一样的工作有什么重要价值。 如何让他们在短短工夫内意识到你的工作价值呢,这是你在降职之前要思考的问题! 《应用 normalizr 进行简单数据转换》作者:jump__jump 笔者已经开发过一个数据分享类的小程序,分享逻辑上相似于百度网盘。以后数据能够由被分享者加工而后持续分享(能够控制数据的过期工夫、是否能够加工数据以及持续分享)。 分享的数据是一个深度嵌套的 json 对象。在用户读取分享数据时存入小程序云数据库中(分享的数据和业务数据有差别,没应用业务服务器进行保护)。如果拿到数据就间接存储的话,很快云数据库就会变得很大,其次咱们也没方法剖析各项和检索各项子数据给予分享者。 《我是如何做到百万数据跑批半小时完结》作者:Issues 跑批工作是要通过定时的去解决这些数据,不能因为其中一条数据出现异常从而导致整批数据无奈持续进行操作,所以它必须是强壮的;并且针对于异样数据咱们后续可进行弥补解决,所以它必须是牢靠的;并且通常跑批工作要解决的数据量较大,咱们不能让它解决的工夫过于久,所以咱们必须思考其性能解决;总结一下,咱们跑批处理的应用程序须要做到的要求如下 健壮性:针对于异样数据,不可导致程序解体可靠性:针对于异样数据,咱们后续可跟踪大数据量:针对于大数据量,可在规定的工夫内进行处理完毕性能方面:必须执行在规定的工夫内解决完从而防止烦扰任何其余应用程序的失常运行 《「性能优化」为虚构列表减少离屏渲染和缓存,晋升渲染速度》作者:皮小蛋 在虚构列表中的图片缩略图减少离屏渲染和压缩并缓存的能力, 作为性能加强。优化的目标:反对 2000 sku+ 能够同时失常操作;进入页面加载工夫在 2 - 3s 以内,滚动展现不卡顿,操作反馈失常;更快的页面加载速度; 次要的解决:减少一个用离屏渲染压缩图片的 Avatar 组件, 并替换原有的 Avatar 组建;减少了 LRU Cache 来缓存压缩过后的图片;实验性的退出 Web worker 避免压缩图片时主线程卡顿;应用更弱小的 react-virtualized 代替本来的 react-virtual-list下文次要分享方案设计以及外围代码的实现, 心愿对大家有所帮忙。 《一顿骚操作版本号比拟性能晋升 300%》作者:Gopher指北 CompareVersion 的逻辑清晰且简略,而依据火焰图知性能次要耗费在 strings.Split 函数上,所以老许的第一指标是尝试优化 strings.Split 函数。 每当此时老许首先想到的办法就是百度大法和谷歌大法,最初在某篇文章中发现 strings.FieldsFunc 函数,依据该文章形容,strings.FieldsFunc 函数宰割字符串的速度远快于 strings.Split 函数。那么咱们到底能不能应用 strings.FieldsFunc 函数替换 strings.Split 函数请看上面测试后果。 ...

September 13, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-你对-Vue-了解多少

本期技术周刊专属 Vue,欢送大家浏览 ~ 文章举荐在 Vue 中为什么不举荐用 index 做 key Vue 默认依照“就地更新”的策略来更新通过 v-for 渲染的元素列表。当数据项的程序扭转时,Vue 不会随之挪动 DOM 元素的程序,而是就地更新每个元素,确保它们在本来指定的索引地位上渲染。 默认模式是高效的,但只实用于列表渲染输入的后果不依赖子组件状态或者长期 DOM 状态 (例如表单输出值) 的状况。 Spring Security + Vue + Flowable 怎么玩? 玩过工作流的小伙伴应该都晓得,工作流中其实自带了一套用户零碎,然而咱们本人的零碎往往也有本人的用户体系,那么如何将两者交融起来呢?或者说是否有必要将两者交融起来呢? 如果你想将本人零碎的用户体系和 flowable 中的用户体系交融起来,那么整体上来说,大略就是两种方法吧... 用 Vue.js 写一个命令行贪吃蛇游戏 本文要分享的是如何应用 Vue.js 实现一个命令行贪吃蛇游戏(temir-snake-game)。对于贪吃蛇游戏想必大家都不生疏了,应用 Vue.js 实现一个 Web 版的贪吃蛇游戏仿佛没什么难度,那如果是命令行版的呢?是不是你会对它的实现原理感兴趣呢?让咱们开始吧!Vue 树图组件封装 其实树图组件很好了解,就是通过递归本身调用本身来实现树图。再说明确一点,最好在头脑中有一个画面,更加便于了解和开发。 就是咱们先定义一个组件,在这个组件外面把第一个节点画进去而后再这第一个节点上面进行递归调用本身组件。这样就能够实现像糖葫芦一样一串节点但这只是一串,并不是树,所以还须要在这个根底上,画节点的中央加上循环的画节点。这样就成了树了。总的来说先易后难,先把骨干了解分明,而后缓缓的往这个树干下面加树枝,这样一棵大树就画好了 elementui 源码学习之仿写一个 el-link 简而言之,el-link 组件就是给a标签包了一层,加上一些款式。故 link 组件除了领有 a 标签的性能,还须要有一些可能应用的款式成果。所以,咱们仿写这个组件标签的时候次要是温习一下传参的变量和款式的搭配,从而实现咱们须要的成果应用 Vite 构建工具疾速创立 Vue 我的项目( Vue3.0 我的项目开发) Vue 我的项目的长处就是组件化开发,将每个性能、或者是每个页面、容器分成各个组件,一方面是便于保护,另一方面是多人开发的时候也是能够提高效率。能够减少代码的复用性、可维护性和可测试性。进步开发效率,不便重复使用,简化调试步骤,晋升整个我的项目的可维护性,便于协同开发,是高内聚、低耦合代码的实际。 代码目录中的 components 目录就是组件的目录,在这里能够依据本人的我的项目去创立各个组件,间接在组件外面写 html 代码、以及调用 vue 的 api 去实现很多性能,例如 axios 网络申请,同时,组件内也能够写 css 款式。 ...

September 6, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊关于-JavaScript-给你看点有用的

本期技术周刊小编给大家看点对于 JavaScript 的芝士! 文章举荐应用 Webpack 构建 JavaScript 工具库 最近收到需要,须要开发一些针对业务特定公共逻辑局部应用的 JavaScript 函数(相似于开发一个公共 SDK),对立保护,同时供各业务部门的前端开发人员进行复用。为了满足公共库开发调试简略、易用性与健壮性等需要,须要满足以下要求: 反对 TypeScript;反对输入多种模块化文件(UMD、CommonJS、ESM 等),便于引入应用;反对按需加载(ESM Tree Shaking);反对自动化测试;...... 查看原生 JavaScript 函数是否被笼罩 你如何确定一个JavaScript原生函数是否被笼罩? 你不能--或者至多无奈牢靠地确定。有一些检测办法很靠近,但你不能齐全置信它们。组员老是遗记打卡,我开发了一款小工具,让全组三个月全勤! 开始的时候咱们都设置了一个打卡闹铃,上班后准时揭示,但有的时候加班,加完班回家又遗记打卡了。还有的时候迷之自信的认为本人打卡了,第二天看考勤记录发现没打卡。 为了彻底解决这个问题,守住咱们的钱袋子,我开发了一款打卡揭示工具,让全组间断三个月全勤! 上面介绍一下,这个小工具是如何实现的。 你不晓得的 console,让 JS 调试更简略 对于前端的各位工程师,必定不会对 console 生疏,然而,你又能理解多少呢,明天就让小鹏来一窥大前世界。 Chrome 控制台-开发者工具windows 按F12, MAC 按 Command + Option + C 或 Command + Option + J, 即可关上控制台 深刻了解 JavaScript-Object(对象) JavaScript 对象能够从一个称为原型的对象里继承属性。对象的办法通常是继承的属性。这种”原型式继承“(prototypal inheritance)是 JavaScript 的外围特色能够看下这个例子 var johan = { name: 'johan' };console.dir(johan);JavaScript 异步函数的 Promisification 解决 Promisification 是一个很长的词,示意一个编程范式的转变,行将承受回调的函数转换为一个返回类型为 Promise 的函数。 ...

August 30, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-程序员如何用编程展现艺术

本期技术周刊小编带大家康康程序员如何用编程展示艺术哒~ 文章举荐手写一个有点意思的电梯小程序 点击楼层,催动电梯回升或者降落电梯达到对应楼层,电梯左右门关上门关上之后,外面的美女就进去啦提示信息: 本美女就要进去了,请速速来迎接按钮会有一个点击选中的成果依据以上的剖析,咱们就能够很好的实现电梯小程序啦,接下来让咱们进入编码阶段吧。 PS: 这里的楼层数是动静生层的,不过倡议值不要设置太大,能够在代码里做限度。 那些你不晓得的 CSS 自定义形态网格布局 在失常的开发中,咱们会遇到很多元素块排列对齐的需要,如九宫格抽奖,多张图片上传后等分布局预览,微信朋友圈多张图片展现等。这都是失常的正方形很规整的布局。 如果图像不是齐全正方形,而是形态像六边形或菱形怎么办?咱们怎么做呢。事实上,咱们将联合咱们曾经钻研过的 CSS 网格技术,并退出一些 CSS clip-path和mask魔法,为您能够设想的任何形态创立精美的图像网格! 高阶切图技巧!基于单张图片的任意色彩转换 明天,要介绍一种基于 CSS mask-composite 的高级技巧。通过把握它,咱们能够通过一张 图片,失去对于它的各种变换,甚至乎,失去各种不同色彩的变换。Windows 滚动条如何丑化成 macOS 那样? 思考到桌面端当初曾经是-webkit-的天下了,以下自定义均以chrome为例自定义滚动条须要用到两个要害的伪元素::-webkit-scrollbar和::-webkit-scrollbar-thumb ::-webkit-scrollbar滚动容器款式::-webkit-scrollbar-thumb滑块款式妙啊!纯 CSS 实现拼图游戏 本文,将向大家介绍一种将多个 CSS 技巧使用到极致的技巧,利用纯 CSS 实现拼图游戏。咱们拆解一下外围的难点: 如何让一个元素变得能够拖拽?如何让一个元素从一个固定的地位通过拖拽,停留在另外一个地位?最难的是,基于(2),拖拽元素后开释,只有开释在特定的地位,元素才会固定到新地位,否则,返回到原先的地位Oh No,下面的 (2)、(3) 怎么看也不像是单纯的 CSS 能解决的问题。那么,到底是如何奇妙的搭配、组合,最终可能利用 CSS 来实现这样的成果呢?让咱们一步一步来拆解这个过程。 晋升 web 输出体验!JS 如何主动配对标点符号? 原理其实非常简单,能够分为以下几个步骤 检测输出的内容,如果是以上标点符号就下一步依据输出的标点,主动补全与之对应的后半局部将光标移到两个标点之间是不是十分好了解呢?然而,外面的细节远不止这些,波及到十分多的比拟生僻的原生办法,一起看看如何实现的吧 有意思的鼠标指针交互探索 有一点须要留神的是,利用模仿的鼠标指针去 Hover 元素,Click 元素的时候,会发现这些事件都无奈触发。 这是因为,此时被暗藏的指针上面,其实悬浮的咱们模仿鼠标指针,因而,所有的 Hover、Click 事件都触发在了这个元素之上。 当然,这个也十分好解决,咱们只须要给模仿指针的元素,增加上 pointer-events: none,阻止默认的鼠标事件,让事件透传即可: { pointer-events: none;}实现聚焦成果 这是之前敌人问我的一个性能:他感觉看网页有时候注意力会被转移,心愿能够有个蒙层帮忙他集中注意力 反手我就用 box-shadow 把性能写了进去。 JavaScript、CSS 实现鼠标追随繁花成果 这个成果的灵感来自某些网站,当鼠标挪动时,鼠标箭头四周呈现气泡、红心或水波的扩散图案,这种成果对网页的访问者有很强的视觉吸引力 咱们用原生的 HTML,JavaScript 和 CSS 就能实现这种成果 ...

August 23, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-这几个-Vue-知识点全都会你就是神

本期技术周刊小编为大家举荐几篇对于 Vue 的内容,一起来康康呀~ 文章举荐揭秘,Vue3 性能优化之 Non-reactive Object 首先,咱们先来看一下 Reactivity Object 响应式对象,它是基于应用 Proxy 创立一个原始对象的代理对象和应用 Reflect 来代理 JavaScript 操作方法,从而实现依赖的收集和派发更新的过程。而后,咱们能够依据须要通过应用 Vue3 提供的 ref、compute、reactive、readonly 等 API 来创立对应的响应式对象。SpringBoot+Vue+Flowable,模仿一个销假审批流程! 小伙伴们晓得松哥最近在录 TienChin 我的项目视频,这个我的项目会用到工作流,为了帮忙小伙伴们更好的了解这个我的项目,松哥最近会出几篇文章和大伙聊一聊工作流 flowable 的应用,算是给 TienChin 我的项目的第一个铺垫,当然,在 TienChin 我的项目的系列视频中,我也会和大家具体聊一聊 flowable 流程引擎的应用。明天我就先写一个简略的销假流程,让小伙伴们对 flowable 先有一个直观的认知。应用 Vue.js 编写命令行界面,前端开发 CLI 的利器 大家好,我是 webfansplz. 继将 Vue 渲染到嵌入式液晶屏后,明天要跟大家分享的是如何将 Vue 渲染到命令行工具 :)。对于命令行工具,大家应该都比拟相熟了,比方 vue-cli、Vite 等。咱们在编写前端利用面向用户时,通常会十分关注用户体验,作为开发者,咱们在应用工具时,它给予咱们的开发者体验(DX)咱们也会非常关注。古代前端工程化离不开 CLI 的开发与应用、那么是否能有较低成本的计划能让前端小伙伴疾速开发 CLI,大家能够像编写前端利用一样搞定它。因而,Temir 应运而生。6 个你必须明确 Vue3 的 ref 和 reactive 问题(入门篇) Vue3 为开发者提供 ref和 reactive两个 API 来实现响应式数据,这也是咱们应用 Vue3 开发我的项目中常常用到的两个 API。本文从入门角度和大家介绍这两个 API,如果有谬误,欢送一起探讨学习~本文演示代码是基于 Vue3 setup 语法。在入门阶段,咱们须要把握的是「是什么」、「怎么用」、「有什么留神」,根本就差不多了。松哥手把手教你在 Vue3 中自定义插件 ...

August 17, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-掌握这个概念你就理解了-React

小编整顿了思否社区对于 React 的优质技术文章,欢送大家浏览 ~ 文章举荐React 组件利用于 Spring MVC 工程 公司前端工程还处于 React+Mobx 与 Spring MVC(freemarker+jQuery)技术栈共存的阶段,两种技术栈页面难免会存在一些雷同的业务性能点,如果别离开发和保护,就须要双倍的人力老本,因而,咱们尝试将 React 业务组件在 webpack、babel 等利器的帮忙下利用于 Spring MVC 我的项目。React Fiber 架构原理分析 在 React 16 之前,VirtualDOM 的更新采纳的是Stack架构实现的,也就是循环递归形式。不过,这种比照形式有显著的缺点,就是一旦工作开始进行就无奈中断,如果遇到利用中组件数量比拟宏大,那么VirtualDOM 的层级就会比拟深,带来的后果就是主线程被长期占用,进而阻塞渲染、造成卡顿景象。从原生 JavaScript 到 React React 是一个用于构建用户界面的 JavaScript 框架。它可用于通过动静操作页面内容来创立 JavaScript 应用程序。浏览器曾经提供了在页面中创立元素的 API,即 DOM,所以老手可能想晓得 React 带来了什么以及它与 DOM 的关系。应用 React 手写一个手风琴组件 知识点emotion语法react语法css语法typescript类型语法入手撸组件系列 —— 1. 应用 React 实现一个 Collapse 组件 写组件的能力是掂量前端工程师程度的重要指标,不论是根底组件还是业务组件。笔者在闲暇工夫也喜爱写组件,为了帮忙初学者上手写React组件,同时为了分享我在写组件中的教训和想法,决定开设一个系列,即:入手撸组件系列,和大家分享一些公共组件和业务组件的实现形式和实现技巧。作为这个系列的第一篇文章,分享下如何从零到一实现一个折叠面板(Collapse)组件实现 React 过程中一次乏味的问题排查经验 趁着对 React 外部运行流程还记得住,业余时间尝试复刻一个 React —— big-react。即然是复刻一个 React,那必定得跑通局部官网的测试用例。在跑一个用例时遇到个很有意思的问题,以下是排查过程。React:不要动,否则你会被炒鱿鱼 不晓得大家在用React开发时,有没有留神到react与react-dom这两个包中有个很奇葩的属性__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: 直译过去就是外部神秘属性,不要乱用!否则你会被炒鱿鱼。为什么会有个这么唬人的属性?明天咱们来聊聊。React Native 如何做线上谬误与性能监控 咱们每个人可能都会遇到这样的问题:即咱们的代码在本地测试时没有问题,然而一上线运行,就会遇到各种奇奇怪怪的线上 Bug。因为本地测试场景并不能全面笼罩,对于这种线上的Bug,最无效的伎俩就是搭建线上监控零碎,而后再进行批改。所以,不论是如许小的零碎,线上谬误与性能监控是必须具备的能力。问答举荐对于 React-redux 与后盾交互的问题?reactnative 文件怎么上传?React 的 import 动静引入组件生命周期错乱?老手问个 mobx-react 问题?React.StrictMode 在开发环境下,useEffect 会主动执行 return?怎么了解 React 的 state 状态不可变?在 React 中 应用 useEffect 报错,怎么解决?React.Context 和 redux 缓存的数据无奈跨浏览器 Tab 共享,怎么解决?React hook 屡次 setstate 被合并怎么解决?课程举荐《自顶向下学 React 源码》 ...

August 10, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-AmazingCSS-也能实现炫酷特效

CSS 的全称是 Cascading Style Sheets,即层叠样式表, 是一种样式表语言,用来形容 HTML 或 XML(包含如 SVG、XHTML 之类的 XML 分支语言)元素所出现的款式。 小编整顿了思否社区对于 CSS 的优质技术文章,欢送大家浏览 ~ 文章举荐超酷炫的转场动画?CSS 轻松拿下! 借助弱小的 CSS 以及一些有意思的技巧,咱们利用纯 CSS 实现了这两个看似非常复杂的转场动画成果,并且,这在之前,是齐全不可能应用纯 CSS 实现的。CSS color-scheme 和夜间模式 normal:示意元素未指定任何配色计划,因而应应用浏览器的默认配色计划出现。light:示意能够应用操作系统亮色配色计划渲染元素。dark:示意能够应用操作系统深色配色计划渲染元素。基于 CSS mask-image 实现炫酷图片过渡成果之星球大战 在给公司开发官网的过程中,会有波及到一些图片的鼠标悬停成果,鼠标悬停后会扭转原图,单纯的渐隐渐现,放大放大,左右平移曾经满足不了产品经理冀望了,总感觉不够惊艳,创意不够。其实作为一个开发者,也不会满足这一般日常的动画交互成果,在寻找新的 idea 时发现基于 CSS mask-image 能够实现很多不错的成果,本文将基于此属性实现四种图片过渡动画成果。动画合成小技巧!CSS 实现动感的倒计时成果 这是一个十分“动感”的倒计时成果,通常在一些流动收场中比拟常见,剖析一下整个动画过程,不难发现,有以下几类动画 数字的变动放大和放大透明度变动不晓得小伙伴是否观察出来呢?上面来一起来看看具体实现吧 应用纯 CSS 实现超酷炫的粘性气泡成果 其中,要想灵活运用 SVG 中的 feGaussianBlur 滤镜还是须要有十分弱小的 SVG 常识储备的。那么,仅仅应用 CSS 是否实现该成果呢?嘿嘿,弱小的 CSS 当然是能够的。本文,就将率领大家一步步应用纯 CSS,实现上述成果。应用 CSS background实现炫酷悬停成果 日常开发过程中,会遇到不少按钮鼠标悬停的成果,实现这类悬停成果的形式有很多,借助伪元素,CSS3 变换及过渡等都能够实现。明天的文章将应用背景色实现相似的成果,当咱们遇到一个问题时,你的脑海中的计划不止一种时,我想这必定是极好的,应用不同的办法达到同一的成果,或者某天所遇到的问题就迎刃而解了。CSS 如何把元素固定在容器底部?(四种形式) 如果是页面底部,咱们能够间接 position: fixed;bottom: 0; 基于浏览器定位间接实现。然而他要的成果是基于父级容器,那么咱们必须要应用其余伎俩来定位了relative 来限度 absolute,而后 bottom: 0,然而在内容过长的时候会导致显示异样。所以咱们须要做外部滚动。如果做外部滚动,那么咱们只有能够撑开盒子即可。不须要相对定位了 问答举荐CSS 一个款式问题,底部多出一块红色的区域?超出暗藏应用了 -webkit-line-clamp: 2; 为什么第三行也展现出了一部分?【CSS】如何实现圆弧形态的切角?请问这样的数字应该怎么用 CSS 来写呢?CSS 怎么实现两个 div 一个固定宽另一个填充残余空间?CSS 如何实现动静 loading 成果?CSS 计算宽度问题CSS 多行文本,如何实现间隔可调的下划线?请问大家对于一个 CSS 节点选择器的问题CSS 命名标准课程举荐《扼要 CSS 教程》课程链接:https://ke.segmentfault.com/c... ...

August 3, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Spring-Boot-是否很难用

Spring Boot 我的项目旨在简化创立产品级的 Spring 利用和服务。你可通过它来抉择不同的 Spring 平台。 文章举荐Spring Boot + Vue3 动静菜单实现思路梳理 对于 Spring Boot + Vue3 的动静菜单,松哥之前曾经写了两篇文章了,这两篇文章次要是从代码上和大家剖析动静菜单最终的实现形式,然而还是有小伙伴感觉没太看明确,感觉不足一个提纲挈领的思路,所以,明天松哥再整一篇文章和大家再来捋一捋这个问题,心愿这篇文章能让小伙伴们彻底搞清楚这个问题。Spring Boot 集成文件 - 集成 POI 之 Excel 导入导出 Apache POI 是用 Java 编写的收费开源的跨平台的 Java API,Apache POI 提供 API 给 Java 程序对 Microsoft Office 格局档案读和写的性能。本文次要介绍通过 SpringBoot 集成 POI 工具实现 Excel 的导入和导出性能。这样优化 Spring Boot,启动速度快到飞起! 微服务用到一时爽,没用好就呵呵啦,特地是对于服务拆分没有把控好业务边界、拆分粒度过大等问题,某些 Spring Boot 启动速度太慢了,可能你也会有这种体验,这里将摸索一下对于 Spring Boot 启动速度优化的一些方方面面。Spring Boot 实现自定义路由笼罩 提供自定义注解指定须要笼罩的路由及新路由地址系统启动时扫描所有注解数据并进行映射解决注册自定义路由映射配置类我的项目如何实现限流? 家喻户晓,服务器能解决的申请数是无限的,如果申请量特地大,咱们就可能须要做限流。限流解决的姿态:要么就让申请期待,要么就把申请给扔了如何在 Spring Security 中自定义权限表达式 首先小伙伴们晓得,咱们在 @PreAuthorize 注解中应用的不必加对象名就能调用的权限办法,如 hasAuthority、hasPermission、hasRole、hasAnyRole 等,基本上都是由 SecurityExpressionRoot 及其子类提供的,精确来说是由 MethodSecurityExpressionRoot 类提供的。Controller 就该这么写 ...

July 27, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-日常使用-Git这些问题你遇到过吗

Git 的诞生是一个十分乏味的故事。1991年 Linus 开源了 Linux 内核,有数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何治理呢?起初 Linus 应用 BitKeeper(BitMover 公司的版本控制软件)治理 Linux 的外围开发,起初 BitMover 进行了对 Linux 的反对,于是 Linus 秉承本人的版本本人写的精力,花了两周工夫本人用 C 写了一个分布式版本控制系统,这就是 Git。 文章举荐Git 配置以及替换 gerrit 默认 commit-msg hook Git commit信息作为一个根底的交互窗口,既能够疾速确定提交影响、关联设计文档、关联缺点bug单、后续还能对我的项目或团队工作进行溯源改良。 Git commit信息的规范化,既体现开发同学的业余素养,也属于公司的过程资产,因而对git commit提交的标准设计如下。 Git 常用命令大全 作用:Git的作用是协同多人对同一个我的项目进行开发,解决多人在同工夫对雷同文件开发的合并抵触问题,给每个文件的每次批改操作做日志标记,不便前期查找保护;源代码版本控制管理系统 是一个 时光穿梭机,能够查看到一个文件之前某年某月某日某时刻是什么样子的。Git Commit 标准与配置 我在平时应用 Git 时,都是随便编写提交阐明。发现问题时进行版本回退,看着横七竖八的提交阐明,基本搞不清哪一次提交了什么内容,深受其害。之后在学习过程中,意识到 Commit 标准与配置,总结内容,分享进去。Git 代码回滚操作(比方刚上线的代码呈现问题时回滚之前版本) 代码回滚这个操作,在理论工作中用的不是太多(前提是标准应用 Git 进行多人合作开发)。个别都是出问题的时候,才会回滚到之前的代码。比方:刚公布的版本到生产环境服务器当前,呈现了一个很奇怪的 bug,而在测试环境服务器,却没有这个 bug(开发和测试都一脸懵逼)。为了不影响用户的应用,所以得连忙回滚到之前的代码版本。本文记录一下具体回滚操作思路和步骤三句话测试你是否懂 Git 共事和组长的一番对话引起了笔者对 Git 的思考先介绍一下我司小工坊式的 Git 提交流程,本地打包,删除 dist 文件,重建 dist 文件,git add .,git commit -m 'XX',git push origin 分支名和传统公司的 git 提交不同,我司打包是本地打包,而且是把 dist 文件间接上传到仓库Git 创立子分支,合并主分支以及其余分支并提交到近程仓库 ...

July 20, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-这份-Webpack-有点料

Webpack 是一个前端资源加载/打包工具,只须要绝对简略的配置就能够提供前端工程化须要的各种性能。 文章举荐《Webpack 拆包:对于 splitChunks 的几个重点属性解析》 从剖析图中能够比拟直观的看出,三个输入 bundle 文件中都蕴含了 m1.js 文件,这阐明有反复的模块代码。splitChunks 的目标就是用来把反复的模块代码拆散到独自的文件,以异步加载的形式来节俭输入文件的体积。splitChunks 的配置项很多而且感觉官网文档的一些形容不是很分明,上面通过一些重点配置属性和场景解释来帮忙大家了解和弄懂如何配置 splitChunks。为不便了解和简略演示,Webpack 和 splitChunks 的初始设置如下《用前端构建工具打包后端服务,我到底经验什么》 看到这个 题目,是的,我本是个后端,最近要写点 node.js, 之前写前端,晓得 npm build 一下,那么用 javascript 写的后端程序也要 npm build 吧,好的,作为个 gopher , 带着对 javascript 的刻板印象就开干了。我本 gopher,奈何没有一个会前端的老婆,就本人干前端了,如果干的不对,请及时纠正 《Webpack 根底配置与css相干loader》 本系列文章是我在学习 Webpack 时的总结与播种,心愿我的一些学习内容能够帮忙到一些正在学习 Webpack 的敌人。本片文章为系列文章的第二篇,蕴含 Webpack 根底配置与 css 相干 loader《用 Webpack 从0到1打包一个按需加载的vue组件库》 在vue我的项目开发中,咱们会将常常用到的逻辑或模块形象成组件,对于那些多个我的项目都有用到的组件,能够思考封装成组件库,公布到npm。每次要到只须要npm install xx一下,就不必来回拷贝了。上面咱们就从0开始来打包一个vue组件库。《 Webpack 打包时如何批改文件名》 在应用 Webpack 进行我的项目打包的时候,咱们可通过以下形式对不同类型的资源,进行文件名或文件门路的批改《在 Webpack 中这样拆散环境和代码就好啦》 环境拆散次要是辨别本地和生产两种环境,本地调试须要能实时看到代码变动,而生产环境须要编译成指定的文件。能够采纳两种形式开发环境和生产环境别离定义配置文件,在 package.json 中定义对应的指令开发环境和生产环境共用配置文件,通过参数来辨别环境《其实 Webpack 编译"模块化"的源码没那么难》 浏览器不反对 CommonJS ,在特定场景下才反对 Es Module ,而 Webpack 能够将这些模块化的代码解析成浏览器可辨认的语法。那么 Webpack 到底是对模块化做了怎么的解决呢?一起来看看。《深度解析 Webpack 5长久化缓存》 ...

July 13, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-掘地三尺搞定-Redis

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统。Redis 提供了一些丰盛的数据结构,包含 lists, sets, ordered sets 以及 hashes ,当然还有和 Memcached 一样的 strings 构造 . Redis 当然还包含了对这些数据结构的丰盛操作。 文章举荐《Redis数据结构与外部编码》 Redis 对外的数据结构包含:字符串(string)、哈希(hash)、列表(list)、汇合(set)以及有序汇合(zset)。这些数据结构都有对应的 API 能够在客户端应用。如上每一种数据结构在 Redis 外部又对应不只一种外部编码实现。Redis 依据存储的数据抉择比拟适合的外部编码以实现内存与性能之间的均衡。《解决Redis连贯报错"ERR max number of clients reached"》 redis应用过程当中个别会由客户端进行连贯资源管理,例如调配连贯、监控连贯状态、回收连接池资源默认设置下,redis不会被动断开连接redis的timeout参数配置项,默认单位是秒,当timeout是0的时候,redis不会被动敞开连贯因为redis默认的最大连接数是10000,然而始终不敞开连贯的话随着时间推移,连贯越积越多,最终导致没有连贯可用最终导致redis客户端连贯的时候报错,显示"ERR max number of clients reached" 《掘地三尺搞定 Redis 与 MySQL 数据一致性问题》 Redis 领有高性能的数据读写性能,被咱们宽泛用在缓存场景,一是能进步业务零碎的性能,二是为数据库抵御了高并发的流量申请。把 Redis 作为缓存组件,须要防止出现以下的一些问题,否则可能会造成生产事变。Redis 缓存满了怎么办?缓存穿透、缓存击穿、缓存雪崩如何解决?Redis 数据过期了会被立马删除么?Redis 忽然变慢了如何做性能排查并解决?Redis 与 MySQL 数据一致性问题怎么应答?《 Redis 都有哪些应用场景》 Redis 作为一种内存型的非关系型的数据库,不论在互联网大厂,小厂,大我的项目和小我的项目中,简直都会被应用。为什么 Redis 会受到如此青眼呢?对于这个问题,可能很多的程序员只是看着他人用而用,不足对 Redis 一个全面的理解。《记一次Redis O(n)命令拖慢接口》 某天忽然收到运维告警音讯,反馈产线有接口在某一段时间慢了,随之性能优化的JIRA工作也开过去了,大抵内容如下: API告警 - Base Tomcat Accesslog: 微服务: xxxapi 接口: /xxxx/xxx POST 在 [ 2022/xx/xx 10:42:00 ~ 10:43:00 ] 工夫窗口,RT > 阈值(300ms) 产生 141 次。 公司外部对API的响应工夫要求是低于300ms,超过的都属于有性能问题的接口,接下来就排查吧。 ...

July 5, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-超实用-Vue-合集请查收

Vue.js 是一个用于创立 web 交互界面的。其特点是 简洁 HTML 模板 + JSON 数据,再创立一个 Vue 实例,就这么简略。数据驱动 主动追踪依赖的模板表达式和计算属性。组件化 用解耦、可复用的组件来结构界面。轻量 ~24kb min+gzip,无依赖。疾速 准确无效的异步批量 DOM 更新。模块敌对 通过 NPM 或 Bower 装置,无缝融入你的工作流。热门文章《Vue3 Composable最佳实际(一)》 因为这种编写VUE代码的形式绝对较新,因而您可能想晓得编写组合式函数的最佳实际是什么呢?本系列教程能够作为您和您的团队在进行组合式开发过程中的参考指南。咱们将涵盖以下内容:1.如何通过选项对象参数使您的组合更加可配置; 本篇主题2.应用ref和unref使咱们的参数更加灵便;3.如何使你的返回值更有用;4.为什么从接口定义开始能够使你的组合式函数更弱小;5.如何应用异步代码而无需“期待” - 使您的代码更易于了解;不过,首先,咱们须要确保咱们对组合式函数的了解是统一的。咱们先花点工夫解释一下什么是组合式函数。《Vue3.2 setup语法糖总结》 提醒:Vue3.2 版本开始能力应用语法糖!在 Vue3.0 中变量必须 return 进去,template中能力应用;而在 Vue3.2 中只须要在 script 标签上加上 setup 属性,无需 return,template 便可间接应用,十分的香啊!《Vue.js 3.x 中跨层级组件如何传递数据?》 在 Vue.js 中,跨层级组件如果想要传递数据,咱们能够间接应用 props 来将先人组件的数据传递给子孙组件: 注:上图来自 Vue.js 官网:Prop Drilling。如上图所示,两头组件 <Footer> 可能基本不须要这部分 props,但为了 <DeepChiild> 能拜访这些 props,<Footer> 还是须要定义这些 props,并将其传递上来。 有人说咱们能够应用 $attrs/$listeners,但仍然还要通过两头层级,而应用 Vuex 又过于麻烦,Event Bus 又很容易导致逻辑扩散,呈现问题后难以定位。 ...

June 29, 2022 · 1 min · jiezi

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-这份前端大杀招接住

前端即网站前台局部,运行在 PC 端、挪动端等浏览器上展示给用户浏览的网页。前端技术个别分为前端设计和前端开发,前端设计个别能够了解为网站的视觉设计;前端开发则是网站的前台代码实现,是创立 WEB 页面或 APP 等前端界面出现给用户的过程,通过 HTML,CSS 及 JavaScript 以及衍生进去的各种技术、框架、解决方案,来实现互联网产品的用户界面交互 。 前端开发追随挪动互联网倒退带来了大量高性能的挪动终端设备利用。HTML5,Node.js 的广泛应用,各类 UI 框架,JS 类库层出不穷,开发难度也在逐渐晋升。 热门文章《CSS实现可拉伸调整尺寸的分栏布局》 实现这个成果须要借助 resize 个性,能够人造的实现元素拉伸个性。最常见的就是 textarea,默认就是能够拉伸的 <textarea></textarea> 不过,咱们这里须要的不是textarea,而是一般的元素。一般的元素要实现这样的成果也很容易,只须要在overflow不是visible的状况下,增加resize属性就行了 .resizable { resize: both; overflow: scroll;}《 Sass利用之实现主题切换》 背景:实现主题切换有几种不同的计划,比方应用CSS变量,应用JavaScript动静加载对应的主题款式文件等。本文次要讲的是如何应用Sass实现主题切换。 实质:Sass作为CSS预处理器,须要编译成CSS后,能力被浏览器辨认和解析。因而无奈在浏览器中间接应用Sass实现相似CSS变量那种动静切换。实质上来说,我的项目中有几个主题就要提前定义好几份主题款式并全副引入。 《玩转 AbortController 控制器》 绝大部分状况,网络申请都是先申请先响应。然而某些状况下,因为未知的一些问题,可能会导致先申请的 api 后返回。最简略的解决方案就是增加 loading 状态,在所有申请都实现后能力进行下一次申请。但不是所有的业务都能够采纳这种形式。这时候开发者就须要对其进行解决以防止渲染谬误数据。《前端监控的搭建步骤,别再一头雾水了!》 在入手实现之前,首先脑子里要有一个整体脉络,明确搭建前端监控具体的流程步骤有哪些。因为前端监控零碎实际上是一个残缺的全栈我的项目,而并不仅仅是前端,甚至次要的实现都是围绕在数据方面的。 当然了,还有一点阐明,本篇的实现次要是面对一般业务,面向中小厂自研的方向。我看过大厂做的监控零碎,非常复杂能力也十分强,动不动就是亿万级别的数据,最初整还到了大数据的方向。我只介绍如何实现次要性能,如何解决问题。 《搭建前端监控,如何采集异样数据?》 异样数据,是指前端在操作页面的过程中,触发的执行异样或加载异样,此时浏览器会抛出来报错信息。比如说你的前端代码用了个未声明的变量,此时控制台会打印出红色谬误,通知你报错起因。或者是接口申请出错了,在网络面板内也能查到异常情况,是申请发送的异样,还是接口响应的异样。在咱们理论的开发场景中,前端捕捉的异样次要是分两个大类,接口异样 和 前端异样,咱们别离看下这两大类异样怎么捕捉。《JSONP 跨域原理及实现》 同源策略(英文全称 Same origin policy)是浏览器提供的一个平安性能。MDN 官网给定的概念:同源策略限度了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在歹意文件的重要平安机制。艰深的了解:浏览器规定,A 网站的 JavaScript,不容许和非同源的网站 C 之间,进行资源的交互,例如:无奈读取非同源网页的 Cookie、LocalStorage 和 IndexedDB无奈接触非同源网页的 DOM无奈向非同源地址发送 AJAX 申请《前端我的项目简单的包治理不晓得怎么办,来看这篇就够了》 痛点:日常开发中, 往往咱们在我的项目中援用的很多依赖包,然而随之依赖包的降级,咱们的我的项目之间的依赖就越来越难以保护,包与包之间版本的援用也让咱们头疼。Lerna 包治理:正如官网所说的,Lerna 是一个管理工具,用于治理蕴含多个软件包(package)的 JavaScript 我的项目,对于应用 git 和 npm 治理多软件包代码仓库的工作流程进行了优化。《Three.js 打造缤纷夏日3D梦中情岛 》 ...

June 22, 2022 · 1 min · jiezi