深入解析Promise
Promise 概述Promise规范Promise是一套专门处理异步场景的规范,它能够有效的避免回调地狱的产生,使异步代码更加清晰,简洁,统一 这套规范最早诞生于前端社区,规范名称为Promise A+ 该规范出现后,立即得到很多开发者的响应. Promise A+规定 所有的异步场景,都可以看作是一个任务,每个异步任务,在JS中应该表现为一个对象,该对象称之为Promise对象,也叫做任务对象 每个任务对象,都应该有两个阶段,三个状态 根据常理,他们之间存在以下逻辑: 任务总是从未决阶段变到已决阶段,==无法逆行== 任务总是从挂起状态变到完成或失败状态,==无法逆行== 时间不能倒流,历史不可改写,任务一旦完成或失败,状态就固定下来,永远无法改变. 挂起->完成称之为resolve;挂起->失败称之为reject.任务完成时,可能有一个相关数据;任务失败时,可能有一个失败原因. 可以针对任务进行后续处理,针对完成状态的后续处理称之为onFulfilled,针对失败的后续处理称之为onRejected Promise...
关于Vue2中使用devtoolsV6的bug
前言最近在学习Vue2项目使用devtools时,需要安装legacy版本V5或V6,安装好插件后,插件能够正常检测,但是开发者工具面板就没有Vue选项卡. 原因估计是Vue devtools的V6插件的BUG 解决方法关闭所有其他浏览器扩展,只打开Vue devtools 扩展才行
Nodejs
node概述特点单线程所以可以快速I/O操作. 用途 开发桌面应用程序 开发服务器应用程序 全局对象 setTimeout setInterval 注意这两者在浏览器中返回的是==数字==,但是在node中返回的是==对象== setImmediate: 类似于setTimeout(()=>{},0) console __dirname: 当前文件的目录,注意,该属性并不是global里面的属性 __filename: 获取当前文件的路径,该属性并不是global里面的属性 Buffer: 类型化数组,继承自UInt8Array process: cwd(): 输出当前终端(命令行)所在目录 exit(): 强制退出当前node进程,可以传入一个退出状态码,默认为0,表示没有错误. argv: 获取执行命令时的所有命令行参数 platform: 获取当前的操作系统 kill(pid): 杀死进程 env: 获取环境变量 node的模块化细节模块的查找 绝对路径: 直接导入 相对路径:...
包管理器
本门课程前置知识: JavaScript, ES6, 模块化, git本门课程的所有代码均书写在 node 环境中,不涉及浏览器环境. 概述概念模块(module)通常以单个文件形式存在的功能片段,入口文件通常称为入口模块或主模块 库(library, 简称 lib)以一个或多个模块组成的完整个功能块, 为开发中某一方面的问题提供完整的解决方案 包(package)包含元数据的库,这些元数据包括: 名称, 描述, git主页, 许可证协议, 作者,...
network
五层网络模型分层的意义 每层相对独立,只需解决自己的问题 每层无需考虑下层的交付,只需要把自己的结果交给下层即可 每层有多种方案可供选择,选择不同的方案不会对上下层造成影响 每一层会在上一层的基础上增加一些额外信息 五层网络模型 数据的封装和解封 四层,五层,七层 面试题说说网络的五层模型 参考答案 从上到下分别为应用层,传输层,网络层,数据链路层,物理层.在发送消息时,消息从上到下进行打包,每一层会在上一层的基础之上加包,而接收消息时,会从下到上解包,最终得到原始信息. 其中:...
Vue2js
核心概念注入 vue 会将以下配置注入到 vue 实例: data: 和界面相关的数据 compouted: 通过已有的数据计算出来的数据 methods: 方法 模板中可以使用 vue 实例中的成员 虚拟 DOM 树直接操作真实的 DOM 会引发严重的效率问题,vue 使用虚拟 DOM(vnode)的方式来描述要渲染的内容,vnode 是一个普通的 JS 对象,用于描述界面上应该有什么,比如: 1234var vnode = { tag: 'h1', children: [{ tag: undefined, text: '第一个vue应用: Hello World' }],}; 上面的对象描述了: 1有一个标签名为h1的节点,他会有一个子节点,该子节点是一个文本,内容为"第一个vue应用: Hello World" vue 模板并不是真实的 DOM,他会被编译为虚拟 DOM 1234<div id="app"> ...
《从白屏到丝滑体验:深入解析骨架屏技术》
前言最近在公司实习,有一个新的需求,需要把我们的 APP 的遮罩加载 loading 效果替换为骨架屏(skeleton screen)以提升用户体验. 原来在学习 uniapp 小程序开发的时候曾经使用过骨架屏这一技术,当时是利用微信小程序开发者工具直接生成的. 但是公司的 APP 的技术栈是 Flutter, 开发的是 Android 和 IOS 的应用,所以在技术实现上可能会略有不同. 为了总结记录骨架屏的相关知识和最佳实践,决定开一篇文章记录一下. 骨架屏的背景与意义背景骨架屏(skeleton screen)是指当网络较慢时,在页面真实数据加载之前,给用户展示出页面的大致结构。...
自习岛项目记录
项目准备最近准备做一个无人自习室的项目,先简单写一些想法,以后再慢慢完善. 总体上分为软硬件两大部分 软件 用户端小程序 商家端小程序 商家端PC管理后台 对于小程序端,采用技术栈: UI设计: MasterGo 框架: Uniapp支持平台微信小程序,支付宝小程序,抖音小程序 UI组件库: uview-plus 语言: typescript + scss 对于PC管理后台,采用技术栈 框架: vue3 UI组件库: ElementPlus+ Echarts 语言: typescript + scss 后端统一采用 mysql + nodejs + koa 调试工具 apifox 硬件初步功能点 我想做一个无人自习室软件,包括uniapp用户端和Vue3管理后台,后端用express,请问这个项目可以寻找哪些点作为前端技术的难点和亮点为简历添彩 这是一个很有潜力的项目!以下是前端部分可以设计为技术难点和亮点的点,以提升简历的吸引力: 技术难点与亮点1. 实时座位状态显示难点: 实现座位实时更新需要前后端协作。 使用 WebSocket...
计算机组成原理
计算机的发展 计算机系统 = 硬件 + 软件系统软件: 用来管理整个计算机系统 操作系统 数据库管理系统(DBMS) 标准程序库 网络软件 语言处理程序 服务程序 应用软件: 按任务需要编制的各种程序 硬件的发展ENIAC:...
MySQL
SQL基础篇 MySQL的安装与启动启动与停止12net start <服务名>net stop <服务名> 1Win + R SQL通用语法及分类SQL通用语法 可以单行或多行书写,以分号结尾 可以使用空格/缩进来增强语句的可读性 不区分大小写,关键字建议使用大写 注释 单行注释: —注释内容 或 #注释内容(MySQL特有) 多行注释: / 注释内容 / SQL分类 分类 全称 说明 DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段) DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改 DQL Data Query Language 数据查询语言, 用来查询数据库中表的记录 DCL Data Control Language 数据控制语言,用来创建数据库用户,控制数据库访问权限 DDL数据库操作12345678910-- 查询所有数据库SHOW DATABASES;--...



