v-model数据绑定分析

v-model数据绑定分析 v-model是Vue提供的指令,其主要作用是可以实现在表单<input>、<textarea>及<select>等元素以及组件上创建双向数据绑定,其本质上就是一种语法糖,既可以直接定义在原生表单元素,也可以支持自定义组件。在组件的实现中,可以配置子组件接收的prop名称 ... »

Js中Currying的应用

Js中Currying的应用 柯里化Currying是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术,是函数式编程应用。 描述 如果说函数式编程中有两种操作是必不可少的那无疑就是柯里化Currying和函数组合Compose,柯里化其实就是流水线上的 ... »

Vue路由History模式分析

Vue路由History模式分析 Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,通过引入Vue-router对象模块时配置mode属性可以启用history模式。 描述 Vue-router的hash模式使用URL的Hash来模拟一个完整 ... »

Vue路由Hash模式分析

Vue路由Hash模式分析 Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,即使用URL的Hash来模拟一个完整的URL,当URL改变时页面不会重新加载。 描述 Hash符号即#原本的目的是用来指示URL中指示网页中的位置,例如https: ... »

Vue中computed分析

Vue中computed分析 在Vue中computed是计算属性,其会根据所依赖的数据动态显示新的计算结果,虽然使用{{}}模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的,在模板中放入太多的逻辑会让模板过重且难以维护,所以对于任何复杂逻辑,都应当使用计算属性。计算属性是基于数据的响应式 ... »

常见的兼容性问题

常见的兼容性问题 浏览器有着大量不同的版本,不同种类的浏览器的内核也不尽相同,所以不同浏览器对代码的解析会存在差异,这就导致对页面渲染效果不统一的问题。 初始化样式 因浏览器兼容的问题,不同的浏览器对标签的默认样式值不同,如果不初始化会造成不同浏览器之间的显示差异,布局出现错乱,所以要初始化样式,达 ... »

async/await剖析

async/await剖析 JavaScript是单线程的,为了避免同步阻塞可能会带来的一些负面影响,引入了异步非阻塞机制,而对于异步执行的解决方案从最早的回调函数,到ES6的Promise对象以及Generator函数,每次都有所改进,但是却又美中不足,他们都有额外的复杂性,都需要理解抽象的底层运 ... »

Thunk函数的使用

Thunk函数的使用 编译器的求值策略通常分为传值调用以及传名调用,Thunk函数是应用于编译器的传名调用实现,往往是将参数放到一个临时函数之中,再将这个临时函数传入函数体,这个临时函数就叫做Thunk 函数。 求值策略 编译器的求值策略通常分为传值调用以及传名调用,在下面的例子中,将一个表达式作为 ... »

Vue数据双向绑定原理

Vue数据双向绑定 Vue是通过数据劫持的方式来实现数据双向数据绑定的,其中最核心的方法便是通过Object.defineProperty()来实现对属性的劫持,该方法允许精确地添加或修改对象的属性,对数据添加属性描述符中的getter与setter实现劫持。 描述 运行一个Vue实例并将data打 ... »

深入理解Js数组

深入理解Js数组 在Js中数组存在两种形式,一种是与C/C++等相同的在连续内存中存放数据的快数组,另一种是HashTable结构的慢数组,是一种典型的字典形式。 描述 在本文中所有的测试都是基于V8引擎的,使用的浏览器版本为Chrome 83.0,当然直接使用Node也是可以的。通常创建数组一般用 ... »

Vue中key的作用

Vue中key的作用 key的特殊attribute主要用在Vue的虚拟DOM算法,在新旧Nodes对比时辨识VNodes。如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试就地修改、复用相同类型元素的算法,而使用key时,它会基于key的变化重新排列元素顺序,并且会移除key不 ... »

Map与WeakMap

Map与WeakMap Map对象用来保存键值对,并且能够记住键的原始插入顺序,任何对象或者原始值都可以作为键或者是值。 WeakMap对象同样用来保存键值对,对于键是弱引用的而且必须为一个对象,而值可以是任意的对象或者原始值。 Map 描述 Map对象类似于一个普通的键值对的Object对象,也是 ... »

OAUTH开放授权

OAUTH开放授权 开放授权为用户资源的授权提供了一个安全的、开放而又简易的标准。 的授权不会使第三方触及到用户的帐号信息例如用户名与密码等,即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 授权是安全的,目前 的版本为 。 实例 假如此时有一个网站提供照片的冲印服务并且提供邮 ... »

OSI七层模型

OSI七层模型 七层模型包括物理层、数据链路层、网络层、运输层、会话层、表示层、应用层,其中会话层、表示层、应用层一般统称为应用层,在 四层模型中物理层与数据链路层归为网络接口层,网络层与运输层是单独的层级,会话层、表示层、应用层归为应用层。 物理层 物理层的主要任务描述为确定与传输媒体的接口的一些 ... »

前端性能优化方案

前端性能优化方案 前端资源比较庞大,包括 、`CSS JavaScript Image Flash Media Font Doc HTTP JavaScript DOM HTML`结构优化等等。在用户角度前端优化可以让页面加载得更快,对用户的操作响应得更及时,能够给用户提供更为友好的体验,在服务商角 ... »

Js异步机制的实现

Js异步机制 是一门单线程语言,所谓单线程,就是指一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯,坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应也就 ... »

Promise对象

Promise对象 是单线程的语言,通过维护执行栈与任务队列而实现了异步操作, 与`Ajax Promise Promise ES6`中被统一规范,由浏览器直接支持。 语法 是带有 和`reject Promise executor resolve reject executor resolve r ... »

HTTPS加密传输过程

HTTPS加密传输过程 全称 ,是以安全为目标的 通道,在 的基础上通过传输加密和身份认证保证了传输过程的安全性。 在`HTTP SSL HTTPS SSL SSL`。 知识储备 HTTP 是应用层协议,默认运行在 端口,是一种不安全的传输协议,经其传输的数据都是未加密的明文数据,可以被中间人攻击, ... »