注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

2021 年你需要知道的 CSS 工程化技术 CSS3

马师傅 发表了文章 • 1067 次浏览 • 2021-11-16 13:39 • 来自相关话题

目前整个 CSS 工具链、工程化领域的主要方案如下: 而我们技术选型的标准如下: 开发速度快 开发体验友好 调试体验友好 可维护性友好 扩展性友好 可协作性友好 体积小 有最佳实践指导 目前主要需要对比的三套方案: Less/Sass + PostCS... ...查看全部
0
评论

如何在TS里使用命名空间,来组织你的代码 Javascript

马师傅 发表了文章 • 1088 次浏览 • 2021-11-16 13:37 • 来自相关话题

前言 关于命名空间,官方有个说明,大概是这么个意思: 为了与ECMAScript 2015里的术语保持一致,从TypeScript 1.5开始,“外部模块”称为“模块”,而“内部模块”称做“命名空间”。 为了避免新的使用者被相似的名称所迷惑,建议: 任何使用... ...查看全部
0
评论

【灵魂拷问】当面试官问你JavaScript预编译 前端面试

马师傅 发表了文章 • 769 次浏览 • 2021-11-15 23:57 • 来自相关话题

(一) 前言 在腾讯字节等其他大厂的面试中,JavaScript预编译是经常会被问到的问题,本文将带大家了解JS预编译中的具体过程 (二)编译执行步骤 传统编译语言编译步骤 对传统编译型语言来说,其编译步骤一般为:词法分析->语法分析->代码生成,... ...查看全部
0
评论

面试题:实现小程序平台的并发双工 rpc 通信 前端面试

马师傅 发表了文章 • 822 次浏览 • 2021-11-15 23:54 • 来自相关话题

前几天面试的时候遇到一道面试题,还是挺考验能力的。 题目是这样的: rpc 是 remote procedure call,远程过程调用,比如一个进程调用另一个进程的某个方法。很多平台提供的进程间通信机制都封装成了 rpc 的形式,比如 electron 的 ... ...查看全部
0
评论

localStorage灵魂五问。 5M?? 10M !!! 前端面试

马师傅 发表了文章 • 941 次浏览 • 2021-11-15 23:53 • 来自相关话题

灵魂五问 localStorage 存储的键值采用什么字符编码 5M 的单位是什么 localStorage 键占不占存储空间 localStorage的键的数量,对写和读性能的影响 写个方法统计一个localStorage已使用空间 我们挨个解答,之后给... ...查看全部
0
评论

Vue新玩具VueUse vue

马师傅 发表了文章 • 978 次浏览 • 2021-11-15 15:54 • 来自相关话题

什么是 VueUse VueUse 是一个基于 Composition API 的实用函数集合。通俗的来说,这就是一个工具函数包,它可以帮助你快速实现一些常见的功能,免得你自己去写,解决重复的工作内容。以及进行了基于 Composition API 的封装。让... ...查看全部
0
评论

token过期自动跳转到登录页面 vue

马师傅 发表了文章 • 1224 次浏览 • 2021-11-15 15:09 • 来自相关话题

这几天项目提测,测试给我提了个bug,说token过期,路由应该自动跳转到登陆页面,让用户重新登录。先说下一些前置条件, 1:我公司的token时效在生产环境设置为一个小时,当token过期,所有接口都直接返回 2:每次路由跳转都会对token进行判断,设置了... ...查看全部
0
评论

Vue3,我决定不再使用Vuex vue

马师傅 发表了文章 • 855 次浏览 • 2021-11-15 15:06 • 来自相关话题

在开发基于Vue3的项目中发现我们可以不再依赖Vuex也能很方便的来管理数据,只需要通过Composition Api可以快捷的建立简单易懂的全局数据存储. 创建State 通过reactive我们来创建state,暴露的IState是用来方便其他文件来接受S... ...查看全部
0
评论

TypeScript 函数的重载 前端面试

马师傅 发表了文章 • 916 次浏览 • 2021-11-12 14:22 • 来自相关话题

函数的重载 什么是函数重载呢?允许函数接收不同数量或类型的参数时,做出不同的处理。比如说这个例子: function double(x: number | string): number | string { if (typeof x === 'num... ...查看全部
0
评论

js 有哪些内置对象 Javascript

马师傅 发表了文章 • 771 次浏览 • 2021-11-12 14:14 • 来自相关话题

全局的对象( global objects )或称标准内置对象,不要和 "全局对象(global object)" 混淆。 这里说的全局的对象是说在全局作用域里的对象。全局作用域中的其他对象可以由用户的脚本创建或由宿主程序提供。 js 中的内置对象主要指的是... ...查看全部
0
评论

为什么的我的z-index不生效了?? Javascript

马师傅 发表了文章 • 876 次浏览 • 2021-11-10 17:54 • 来自相关话题

最近开发时遇到了一个有趣的现象z-index&transform等连用造成了z-index不生效,因此想借此机会记录一下学习成果。本篇文章偏概念性,请在专业人士的监督下食用。Stacking Context 层叠上下文这是 HTML 中的一个三维概念(... ...查看全部
0
评论

【译】3 个能优化网站可用性但被忽视的细节 性能优化

马师傅 发表了文章 • 830 次浏览 • 2021-11-10 17:47 • 来自相关话题

根据 Adobe 的调查显示,给定 15 分钟的时间浏览内容,三分之二的用户更愿意将时间花费在视觉上吸引人的内容。用户也希望网站能在至少 5 秒内加载。因此,设计一个速度快、满意度高的网站(或应用)应成为每个设计师关注的重点。 视觉设计是很难被忽视的,因为我们... ...查看全部
0
评论

setTimeout的执行你真的了解吗? 前端面试

马师傅 发表了文章 • 1261 次浏览 • 2021-11-10 17:28 • 来自相关话题

setTimeout的创建和执行 我们知道setTimeout是一个延时器,它会在规定的时间后延迟执行回调函数,这篇文章就来说说setTimeout它是怎么执行的。 首先我们知道消息队列是用来存储宏任务的,并且主线程会按照顺序取出队列里的任务依次执行,所以为了... ...查看全部
0
评论

从22行有趣的源码库中,我学到了 callback promisify 化的 Node.js 源码实现 node.js

马师傅 发表了文章 • 855 次浏览 • 2021-11-10 17:27 • 来自相关话题

我们经常会在本地git仓库切换tags,或者git仓库切换tags。那么我们是否想过如果获取tags呢。本文就是学习 remote-git-tags 这个22行代码的源码库。源码不多,但非常值得我们学习。 阅读本文,你将学到: 1. Node 加载采用什么模块... ...查看全部
0
评论

3D 穿梭效果?使用 CSS 轻松搞定 CSS3

马师傅 发表了文章 • 797 次浏览 • 2021-11-10 17:22 • 来自相关话题

背景 周末在家习惯性登陆 Apex,准备玩几盘。在登陆加速器的过程中,发现加速器到期了。 我一直用的腾讯网游加速器,然而点击充值按钮,提示最近客户端升级改造,暂不支持充值(这个操作把我震惊了~)。只能转头下载网易 UU 加速器。 打开 UU 加速器首页,映入眼... ...查看全部
0
评论

freeze、seal、preventExtensions对比 Javascript

马师傅 发表了文章 • 836 次浏览 • 2021-11-09 22:27 • 来自相关话题

在Object常用的方法中,Object.freeze和Object.seal对于初学者而言,是两个较为容易混淆的概念,常常傻傻分不清两者的区别和应用场景 概念 先看看两者定义 Object.freeze在MDN中的定义 Object.freeze() 方法... ...查看全部
0
评论

【喵猫秀秀秀】用CSS向你展示猫立方!! CSS3

马师傅 发表了文章 • 827 次浏览 • 2021-11-09 22:23 • 来自相关话题

前言 这次,我们用vue2+scss,带大家来实现一个六面体的猫立方。 本次的逻辑我们不适用任何的js代码,仅仅只依靠css来完成。 所以,通过本片文章,你可以收获一些css动画相关的技巧。 先看看效果 预习 本次我们要用到的知识点 transform ... ...查看全部
0
评论

一款强大到没朋友的图片编辑插件,爱了爱了! 插件化

马师傅 发表了文章 • 1180 次浏览 • 2021-11-09 22:19 • 来自相关话题

前言 最近用户提出了一个新的需求,老师可以批改学生的图片作业,需要对图片进行旋转、缩放、裁剪、涂鸦、标注、添加文本等。乍一听,又要掉不少头发。有没有功能强大的插件实现以上功能,让我有更多的时间去阻止女票双十一剁手呢?答案当然是有的。 效果展示涂鸦 裁剪 ... ...查看全部
0
评论

超详细讲解页面加载过程 前端面试

马师傅 发表了文章 • 766 次浏览 • 2021-11-09 22:12 • 来自相关话题

说一说从输入URL到页面呈现发生了什么?(知识点) ❝ 这个题可以说是面试最常见也是一道可以无限难的题了,一般面试官出这道题就是为了考察你的前端知识的深度与广度。 ❞ 1.浏览器接受URL开启网络请求线程(涉及到:浏览器机制,线程与进程等) 2.开启网络线... ...查看全部
0
评论

VS Code settings.json 10 个高(装)阶(杯)配置! node.js

马师傅 发表了文章 • 824 次浏览 • 2021-11-09 22:09 • 来自相关话题

1. 隐藏活动栏 VS Code 左侧图标列表是“活动栏”,我们可以点击图标跳转到各个模块,我们可以通过配置 workbench.activityBar.visible 来控制活动栏的显示; 如果你想恢复显示,可以自定义快捷键来再次显示这块空间; 如何设置... ...查看全部
0
评论

总结 scripts 阻塞 HTML 解析 前端面试

马师傅 发表了文章 • 1134 次浏览 • 2021-11-07 22:09 • 来自相关话题

看了一些类似文章,里面有这样一些表述:解析 HTML,DOM 解析等;我们统一下表述:下载完 HTML 文件后,浏览器会解析 HTML,目的是为了构建 DOM 结构 或 生成 DOM 树。 内联 scripts <html> <head&... ...查看全部
0
评论

手把手教你封装一个日期格式化的工具函数 前端面试 插件化

马师傅 发表了文章 • 786 次浏览 • 2021-11-07 22:05 • 来自相关话题

最近还是在做那个练习的小项目,做完接收数据并渲染到页面上的时候,发现后端小伙伴又在给我找活干了欸,单纯的渲染这当然是小kiss啦,可这个字段是个什么东西? "createTime" : "2021-01-17T13:32:06.381Z", "lastLogi... ...查看全部
0
评论

用CSS告诉你为何大橘为重!! CSS3

马师傅 发表了文章 • 876 次浏览 • 2021-11-07 22:03 • 来自相关话题

本期我们通过vite+scss去完成一个橘猫心情变化的创意动画,这里的逻辑我们将不使用任何js代码,仅依靠css来完成,所以,通过本期的动画,你可以到一些css动画和绘制的一些技巧。废话不多说,先康康效果~ 还比较可爱吧。当鼠标(鱼)移入出,橘子闷闷不乐,无... ...查看全部
0
评论

你需要知道的 19 个 console 实用调试技巧 前端面试 性能优化

马师傅 发表了文章 • 864 次浏览 • 2021-11-07 22:00 • 来自相关话题

众所周知,浏览器的开发者工具为我们提供了强大的调试系统,可以用来查看DOM树结构、CSS样式调试、动画调试、JavaScript代码断点调试等。今天我们就来看看console调试的那些实用的调试技巧。 如今,我们项目的开发通常会使用React、Vue等前端框... ...查看全部
0
评论

淦,为什么 "???".length !== 3 前端面试

马师傅 发表了文章 • 897 次浏览 • 2021-11-07 21:56 • 来自相关话题

不知道你是否遇到过这样的疑惑,在做表单校验长度的需求中,发现不同字符 length 可能大小不一。比如标题中的 "𠮷" length 是 2(需要注意📢,这并不是一个中文字!)。 '吉'.length // 1 '𠮷'.length // 2 '❤'.le... ...查看全部
1
回复

环信离线消息服务器无法主动推送到客户端 离线消息接收

smysmy 回复了问题 • 2 人关注 • 895 次浏览 • 2021-11-05 16:57 • 来自相关话题

0
评论

「如何优雅的不写注释?」每个工程师都要不断追求的漫漫长路 性能优化

马师傅 发表了文章 • 892 次浏览 • 2021-10-29 13:35 • 来自相关话题

引言 ✨ 作为一个软件开发者,我们需要进行协同,在这个协同的过程中我们需要让其他开发者可以读懂我们的代码,所以注释可能就变成了一个重要的代码解读标注手段。 说到这,大家可能就会感知到注释确实很重要,他可以是开发者有效沟通的渠道,但是我在这里想表达的是注释其实并... ...查看全部
0
评论

Node 之一个进程的死亡 node.js

马师傅 发表了文章 • 1072 次浏览 • 2021-10-29 13:30 • 来自相关话题

人固有一死,一个 Node 进程亦是如此,总有万般不愿也无法避免。从本篇文章我们看看一个进程灭亡时如何从容离去。 一个 Node 进程,除了提供 HTTP 服务外,也绝少不了跑脚本的身影。跑一个脚本拉取配置、处理数据以及定时任务更是家常便饭。在一些重要流程中能... ...查看全部
0
评论

CSS 奇技淫巧 | 巧妙实现文字二次加粗再加边框 前端面试 CSS3

马师傅 发表了文章 • 967 次浏览 • 2021-10-28 22:28 • 来自相关话题

需求背景 - 文字的二次加粗 今天遇到这样一个有意思的问题: 在文字展示的时候,利用了 font-weight: bold 给文字进行加粗,但是觉得还是不够粗,有什么办法能够让文字更粗一点呢? emm,不考虑兼容性的话,答案是可以利用文字的 -webkit... ...查看全部
0
评论

大道至简,繁在人心:在浏览器控制台安装npm包是什么操作? 前端面试

马师傅 发表了文章 • 808 次浏览 • 2021-10-28 22:23 • 来自相关话题

  我们都知道,npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。虽然作为命令行工具的 npm 近年来逐渐式微,但是作为广泛使用的存储库的 npm,却依然... ...查看全部
0
评论

微信小程序统一分享,全局接管页面分享消息的一些技巧 微信小程序

马师傅 发表了文章 • 1254 次浏览 • 2021-10-28 22:20 • 来自相关话题

分享功能非常的重要,当某一个功能或文章打动用户的时候,能把这个小程序分享出去,就能带来裂变传播的效果。 全局接管分享事件 而随着功能越来越多,页面越来越多,每一个页面都需要添加分享的回调方法吗? onShareAppMessage: function () {... ...查看全部
0
评论

我阅读源码的五步速读法 前端面试

马师傅 发表了文章 • 922 次浏览 • 2021-10-28 22:16 • 来自相关话题

阅读代码是程序员最重要的技能之一,我们每天都在读同事的代码或者第三方库的代码,那怎么高效的阅读代码呢?分享下我的源码阅读方法。 我的阅读源码的方法分为五步: 第一步,通过文档和测试用例了解代码的功能 阅读源码前要先了解代码的功能,可以通过文档或者测试用例,了解... ...查看全部
0
评论

复杂web动画,不慌,选择 web Animations API 前端面试 动画 CSS3

马师傅 发表了文章 • 1058 次浏览 • 2021-10-28 22:15 • 来自相关话题

说动前端动画,我们熟知的有两种 CSS 动画 (requestAnimation/setTimeout/setInterval + 属性改变) 动画 当然有人可能会说canvas动画,从运动本质了还是第二种。 今天说的是第三种 Web Animations... ...查看全部
2
回复

请问下发送单聊文本卡在了send报错,一模一样的代码放在demo里面就没问题了,是怎么回事 环信_WebIM WebIM API

imaGeeker 回复了问题 • 2 人关注 • 1213 次浏览 • 2021-10-28 13:44 • 来自相关话题

0
评论

小程序原理 及 优化 性能优化 微信小程序

马师傅 发表了文章 • 1522 次浏览 • 2021-10-27 21:07 • 来自相关话题

小程序使用的是双线程 在这种架构中,视图层使用 WebView 作为渲染载体,而逻辑层是由独立的 JavascriptCore 作为运行环境 > 两者都是独立的模块,并不具备数据直接共享的通道。视图层和逻辑层的数据传输,要由 Native 的 JS... ...查看全部
0
评论

Vue 开发规范(下) vue 前端面试

马师傅 发表了文章 • 808 次浏览 • 2021-10-27 21:03 • 来自相关话题

提供组件 API 文档 使用 Vue.js 组件的过程中会创建 Vue 组件实例,这个实例是通过自定义属性配置的。为了便于其他开发者使用该组件,对于这些自定义属性即组件API应该在 README.md 文件中进行说明。 为什么?良好的文档可以让开发者比较容易的... ...查看全部
0
评论

Vue 开发规范(中) vue 前端面试

马师傅 发表了文章 • 832 次浏览 • 2021-10-27 21:00 • 来自相关话题

上一篇:https://www.imgeek.org/article/825358938将 this 赋值给 component 变量 在 Vue.js 组件上下文中,this指向了组件实例。因此当你切换到了不同的上下文时,要确保 this 指向一个可用的 c... ...查看全部
0
评论

Vue 开发规范(上) 性能优化 vue

马师傅 发表了文章 • 1009 次浏览 • 2021-10-27 20:56 • 来自相关话题

基于模块开发 始终基于模块的方式来构建你的 app,每一个子模块只做一件事情。 Vue.js 的设计初衷就是帮助开发者更好的开发界面模块。一个模块是应用程序中独立的一个部分。 怎么做? 每一个 Vue 组件(等同于模块)首先必须专注于解决一个单一的问题,独立的... ...查看全部
0
评论

带你理解scoped、>>>、/deep/、::v-deep的原理 vue 前端面试

马师傅 发表了文章 • 3702 次浏览 • 2021-10-27 20:54 • 来自相关话题

前言 平时开发项目我们在使用第三方插件时,必须使用element-ui的某些组件需要修改样式时,老是需要加上/deep/深度选择器,以前只是知道这样用,但是还不清楚他的原理。还有平时每个组件的样式都会加上scoped,但是也不知道他具体的原理。今天我就带大家理... ...查看全部
0
评论

手摸手教你用webpack搭建TS开发环境 webpack

马师傅 发表了文章 • 914 次浏览 • 2021-10-24 23:08 • 来自相关话题

前言 最近在学习typescript,也就是我们常说的TS,它是JS的超集。具体介绍就不多说了,今天主要是带大家用webpack从零搭建一个TS开发环境。直接用传统的tsc xx.ts文件进行编译的话太繁琐,不利于我们开发,经过这次手动配置,我们也能知道vue... ...查看全部
0
评论

用 JS 写算法时你应该知道的——数组不能当队列使用!! Javascript

马师傅 发表了文章 • 928 次浏览 • 2021-10-24 22:58 • 来自相关话题

在初学 JS 时,发现数组拥有 shift()、unshift()、pop()、push() 这一系列方法,而不像 Java 或 CPP 中分别引用队列、栈等数据结构,还曾偷偷窃喜。现在想想,这都是以高昂的复杂度作为代价的QAQ。 举个例子 - BFS 一般队... ...查看全部
0
评论

如何“优雅”地修改 node_modules 下的代码? 性能优化

马师傅 发表了文章 • 1088 次浏览 • 2021-10-24 22:54 • 来自相关话题

在实际开发过程中当我们遇到 node_modules 中的 A 包有 bug 时候,通常开发者有几个选择: 方法一:给 A 包提 issue 等待他人修复并发布:做好石沉大海或修复周期很长的准备。 方法二:给 A 包提 mr 自行修复并等待发布:很棒,不过你最... ...查看全部
0
评论

封装一个底部导航 插件化

马师傅 发表了文章 • 877 次浏览 • 2021-10-24 22:47 • 来自相关话题

前言 在我们日常项目开发中,我们在做移动端的时候会涉及到地步导航功能,所以封装了这个底部导航组件。 底部导航 BottomNav组件属性 1. value选中值(即选中BottomNavPane的name值)值为字符串类型非必填默认为第一个BottomNavP... ...查看全部
0
评论

你知道为何跨域中会发送 options 请求? 前端面试

马师傅 发表了文章 • 1596 次浏览 • 2021-10-21 23:37 • 来自相关话题

同源策略 同源策略是一个重要的安全策略,它用于限制一个 origin 的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 简单说,当我们访问一个网站时,浏览器会对源地址的不同部分(协议://域名:端口)做检查... ...查看全部
0
评论

移动端常见问题汇总,拿来吧你! 插件化 前端面试

马师傅 发表了文章 • 857 次浏览 • 2021-10-21 23:34 • 来自相关话题

1px适配方案 某些时候,设计人员希望 1px在手机显示的就是1px,这也是....闲的,但是我们也要满足他们的需求, 这时候我们可以利用缩放来达到目的 .border_1px:before{    content: '';  ... ...查看全部
0
评论

你真的了解border-radius吗? CSS3

马师傅 发表了文章 • 1150 次浏览 • 2021-10-21 23:31 • 来自相关话题

水平半径和垂直半径 现在很多人都不知道我们平常使用的圆角值是一种缩写,例如我们平常写的top圆角10px就是一种缩写: border-top-left-radius:10px; 等同于 border-top-left-radius:10px 10px; 其中... ...查看全部
0
评论

写给vue转react的同志们(5) react vue

马师傅 发表了文章 • 1168 次浏览 • 2021-10-21 23:26 • 来自相关话题

写给vue转react的同志们(4)我们知道 React 中使用高阶组件(下面简称HOC)来复用一些组件的逻辑。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件... ...查看全部
0
评论

写给vue转react的同志们(4) react vue

马师傅 发表了文章 • 1220 次浏览 • 2021-10-19 22:56 • 来自相关话题

下一篇应各位老爷要求,这篇文章开始拥抱hooks,本文将从vue3与react 17.x(hooks)对比来感受两大框架的同工异曲之处。 今天的主题:vue3与react 定义与修改数据vue3与react 计算属性vue3与react 实现监听 vue3与r... ...查看全部
0
评论

写给vue转react的同志们(3) 前端面试 react vue

马师傅 发表了文章 • 1117 次浏览 • 2021-10-19 22:54 • 来自相关话题

下一篇我们都知道vue上手比较容易是因为他的三标签写法以及对指令的封装,他更像一个做好的包子你直接吃。 相比react他的纯js写法,相对来说自由度更高,这也意味着很多东西你需要自己手动封装,所以对新手没那么友好,所以他更像面粉,但可以制作更多花样的食物。 今... ...查看全部
0
评论

写给vue转react的同志们(2) react vue

马师傅 发表了文章 • 844 次浏览 • 2021-10-19 22:51 • 来自相关话题

下一篇react中想实现类似vue中的插槽 首先,我个人感觉jsx的写法比模板写法要灵活些,虽然没有像vue那样有指令,这就是为啥vue会上手简单点,因为他就像教科书一样教你怎么使用,而react纯靠你手写表达式来实现。 如果你想实现类似插槽的功能,其实大部分... ...查看全部