路旁有花,心中有歌,
天上有星。
Vue
2021.04.21
Vue3源码学习: runtime-core 从createApp开始,应用实例的创建过程。 源码目录:packages/runtime-core/src/apiCreateApp.ts Vue应用实例相关的TS类型声明 App应用实例 app应用实例所暴露的内部属性,都在这里定义了。 export interface App<HostElement = a...
2021.04.20
Vue的各部分是如何在一起工作的?各个API和配置项都代表什么含义?实际内部是怎样运行的? 有关这些基本原理和常识的问题,有结论都记在这里。 Vue中各种变量名形式的含义 DEV: 这种前后有两个下划线的大写变量名,表示环境标志。在一个环境中如果这个环境标志为真(truthy),则代表这里是相应的环境。(__DEV__代表开发环境) __v_isReadonly: ...
Vue插件的功能和原理,如何编写一个Vue插件。 1. Vue插件的基本结构 Vue插件可以在createApp()创建的应用实例挂载前,使用app.use()方法应用在app上。 import somePlugin from 'somePlugin' const app = createApp(App); // 应用插件 app.use(somePlugin); app.mo...
Frontend
Ref
2021.04.19
前端优秀参考站点:备用。 JavaScript 现代JS教程 阮一峰教程 CSS CSSTricks
尝试探索Vue3源码: 响应式reactivity部分: reactive,ref等。 原项目目录: /packages/reactivity 1. reactive()函数 /* * Creates a reactive copy of the original object. * * The reactive conversion is "deep"—it aff...
2021.04.18
尝试探索Vue3源码: 响应式reactivity部分。 原项目目录: /packages/reactivity 1. effect.ts 1.1 定义dep、keyToDepMap和targetMap的接口类型 可以看到,这里: dep被定义为由ReactiveEffect组成的Set集合; KeyToDepMap被定义为<any,Dep>类型构...
Axios
Ajax
2021.04.12
基于Promise和ajax的前端异步请求库 axios简介 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 特点: 在浏览器环境中,创建 XMLHttpRequests 在 node.js 环境中,创建内置 http 请求 支持 Promise API 可拦截请求和响应 转换请求数据和响应数据 可取消...
Vue3的响应式原理 一、 Vue3响应式基本实现原理 假设reacObj是Vue中的一个响应式对象,它具有属性a和b; Vue3使用reactive(obj)函数,创建一个响应式的对象,返回一个obj的代理对象Proxy。 reactive内部使用track、effect和trigger三个关键方法来描述响应式过程: track(obj, property):对ob...
Design_Mode
前端框架的几种设计模式,理解其含义,了解其优缺点很重要。 MVC、MVP、MVVM都是软件架构,或称为设计模式。 MVC模式 MVC的含义是: Model-View-Controller (模型-视图-控制器)模式。其中各项含义是: Model: 储存的数据; View: 用户界面; Controller: 业务逻辑、方法; 用户可以直接与View层(用户界...
Webpack
2021.04.11
容易混还记不住。 output中的 path 打包后文件的输出目录,规定必须是绝对路径。 常用node.js的path模块解析成绝对路径传入。 output: { path: path.resolve(__dirname, './dist/'); } // 输出文件全部在本项目根目录的/dist文件夹内。 output中的 publicPath 这里的publ...
2021.04.09
Webpack基本功能配置。 生产环境基本配置 loader CSS、SCSS资源 MiniCssExtractPlugin.loader: 将css文件单独输出,然后html-webpack-plugin自动引入到输出html。 css-loader: 载入CSS代码; postcss-loader: 对CSS进行兼容性处理,根据package.json里的br...
Performance
记录前端性能优化的方向、方式方法。 前端性能评价指标 白屏时间 白屏时间(FP:First Paint):从浏览器响应用户输入的url,到页面开始显示内容的时间(解析完HTML文档的<head>部分,开始渲染<body>); 白屏时间的计算: <head> <!-- other content ... --> &...
cloudBase
Serverless
2021.04.01
腾讯云开发cloudBase部署上线serverless应用程序基本操作,不用复杂的后端配置流程,轻松上线前端app。 基本环境安装 全局安装腾讯云开发命令行工具:cloudbase-cli npm install -g @cloudbase/cli 初始化 初始化环境: cloudbase init --without-template 第一次运行会跳转提示登录,...
Leancloud
Leancloud,快速开发小程序利器。 用这么多次了,还每次都忘。。记录一下吧。。 Leancloud引入 官网查。CDN直接标签引入、npm安装引入都可以。 // leancloud 配置的ES6模块引入(先npm安装) import * as AV from "leancloud-storage"; 初始化 在leancloud网站上创建了应用后,在设置页面可...
2021.03.31
防抖和节流,在本质上都是为了防止函数被多次频繁触发,采取的保护措施。 防抖和节流的区别:在约定的时间间隔内重复执行函数,是否重新计时。节流不会重新计时,而防抖会。 一、防抖 (Debounce) 防抖(Debounce):在函数被执行后的规定间隔时间内,无法再次执行函数。如果间隔时间内再次执行了函数,则重新计算时间间隔。 防抖可以保证函数不会被连续触发,规定时间间隔内最多...
2021.03.30
新内容或没完全掌握的模糊知识内容,或者用来提醒待做的前端任务,防止忘记。 FrontEnd内容待学习、复习 现代工程化前端项目如何进行打包与上线,及其自动化操作; 前端的HTTP请求相关:如何手动发送与接收,XMLRequest,fetch和axios.js等; TCP协议、HTTP协议内容回顾; HTTPs协议的内容、特点 微前端:概念、特点等; 各种前...
杂记。 如何为用于提交的数据做验证 前端验证:必填项目是否确实、(邮箱、电话号、地址等)格式匹配、密码强度检测、验证码(简单的 图灵测试 ); 后端验证:唯一性验证、验证码、敏感词; 前端验证的主要目的是对不影响安全性的验证进行预校验,减少后端负担,增加用户体验。(比如后端已经提供库存为零信息,购物车中商品在提交给后端前就应该校验是否有库存,否则提交给后端再返回无库存太...
Algorithm
2021.03.26
各种排序算法基本思想描述与JS实现:冒泡、选择、插值(待补充)、希尔(待补充)、快速排序。 0. 总览 盗图一张。排序 1. 冒泡排序 从头开始,选出元素与其他元素逐一比较,并当场换位。 一次比较后,当前轮的极值一定会被放在边缘,然后排除这个极值开启下一轮比较,直到所有完成排序。 复杂度: 比较: O(n2) 交换: O(n2) // 冒泡排序 let a...
JavaScript
2021.03.20
用JS类实现双向链表。 // Node class Node{ constructor(data, pre = null, next = null) { this.data = data; this.pre = pre; this.next = next; } } // LinkedList class Link...
函数内部对按值传入的参数进行修改,不会对外部参数有影响; 对按引用传入的参数修改(如传入的对象),会影响外部参数本身. 具体原因是: 外部变量在内存中对应一个地址,这个地址指向的一段内存空间记载着这个外部变量的具体值。 函数的参数位于内存中的另一个不同的地址,在函数调用时,函数接收传来的外部变量,实际上是沿着外部变量的内存地址,找到内存中储存的值,然后复制一份到函数参数地址所指向的内...
Page 5 Of 8