当前浏览器过旧,页面样式无法完整呈现。请使用 Chrome、Edge、Firefox 或 Safari 访问。

你想要的 vue 源码分析 · 14

思考 实现效果:点击 div,修改 dom,背后隐藏的问题 修改哪块的 dom 修改效率与性能是否最优 是否每次的数据变化都要操作 dom 是否逐项去修改 dom 响应式对象的定义 vue2.x 实现响应式的核心是用了 ES5 的 Object.defineProperty(obj, prop, descriptor),Object.defineProperty(obj, prop, descri…

Vue 源码 · 4/16/2019 · 7 分钟阅读

理解 js 引擎执行过程:运行机制,语法分析,创建函数调用栈,创建上下文,创建作用域链

尝鲜 下面两段代码的执行结果 运行机制 js 执行是单线程的,是基于事件循环的,事件循环分为下面几个步骤 所有同步任务都在主线程上执行,形成一个执行栈 主线程之外,还存在一个任务队列,只要异步任务有了运行结果,就在任务队列中放置一个事件 一旦执行栈中所有的同步任务执行完毕,系统就会读取任务队列,看看有哪些事件,那么对应的异步任务结束等待状态,进入执行栈,开始执行 主线程不断重复第三步 主线程的执行…

JavaScript · 4/15/2019 · 5 分钟阅读

vue3 为什么要用 Proxy 替代 defineProperty

vue2.x 中的响应式是基于 defineProperty 中的 descriptor,通过属性的 getter 和 setter 监听来实现 关于 defineProperty 和 Proxy 的原理与使用 之前有写了两篇博客 Object.defineProperty 的原理与使用 Proxy 的原理与使用 defineProperty 的响应式存在的问题 无法监听数组基于下标的修改和对于 …

Vue 源码 · 4/15/2019 · 1 分钟阅读

Proxy

Proxy 是 ES6 出的语法,字面理解是“拦截”,提供了一种机制,对目标对象进行拦截,提供了 13 种拦截方式,对外界的访问进行过滤与修改 尝鲜 案例 1 对设置拦截行为的对象 obj,去读写它的属性 案例 2 Proxy 如何使用 案例 3 目标对象是一个空对象,拦截函数是返回 35,所以对任何属性的访问都是 35 案例 4 如果 handler 没有设置任何拦截,等同于目标对象 案例 5 …

JavaScript · 4/15/2019 · 15 分钟阅读

Object.defineProperty

Object.defineProperty 是 ES5 出的语法,可以直接在一个对象上定义一个新属性,或者修改一个现有属性,并返回这个对象 如何使用 描述符 案例

JavaScript · 4/15/2019 · 2 分钟阅读

vue2.6 增加的特性

Scoped slots(作用域插槽)的新语法 动态参数指令 如果我们想在 v-bind or v-on 中使用动态变量,在 Vue@2.5.22 中: Vue@2.6.0 引入了一个新语法来动态创建参数指令 使用 Vue.observable()创建一个响应对象 之前,创建一个响应对象,必须在一个 Vue 实例中配置。现在我们可以在 Vue 实例外部,通过使用 Vue.observable(da…

Vue · 4/14/2019 · 3 分钟阅读

vue-cli3 的配置文件详细介绍

如何启动 操作步骤 一开始只有两个选项: default(默认配置)、Manually select features(手动配置)和自定义模板,根据自己情况选择 根据你的项目需要来选择配置,空格键是选中与取消,A 键是全选 选择 css 预处理器 如果你选择了 Css 预处理器选项,会让你选择这个 是否使用路由的 history 模式:一般选择 no 选择 Eslint 代码验证规则:不勾这个->…

Vue · 4/13/2019 · 7 分钟阅读

你想要的 vue 源码分析 · 13

为了减少首屏加载时间,按需加载组件 源码 异步组件的公共方法 once 封装 ensureCtor $forceUpdate createAsyncPlaceholder 总结 异步组件的本质是两次渲染,第一次先渲染成占位符(注释节点),等待异步组件获取成功后,再通过 forceRender 强制重新渲染,生成异步加载的组件 0 delay 的高级异步组件第一次直接渲染成 loading 组件

Vue 源码 · 4/10/2019 · 6 分钟阅读

你想要的 vue 源码分析 · 12

组件注册的使用场景有两种: , 全局注册 局部注册 局部组件与全局的组件的区别 全局组件是扩展到 Vue.options 下,所有组件创建的过程中,都会从全局的 Vue.options.components 扩展到当前组件的 vm.$options.components,这就是全局组件能在全局使用的原因,局部注册是注册在 Sub.option 扩展。

Vue 源码 · 4/8/2019 · 3 分钟阅读

你想要的 vue 源码分析 · 11

mounted 为什么能够访问到 dom 如果是组件,是在 vnode patch 的 insert 钩子函数中执行,insert 是先子后父,所以此时的 mounted 执行实际也是先子后父 如果不是组件,vnode patch 了,最终成了真正的 dom,才会执行 两者的相同点是 vm._render()之后,vm._render()已经把 vnode 渲染成真实的 dom 了 生命周期的定义…

Vue 源码 · 4/3/2019 · 5 分钟阅读

web 安全总结

总结 xss 的原理 xss 是跨站脚本攻击,用户的数据(文章,访问的参数),被当作脚本执行,执行的地方有可能是 script 标签内,其他标签的属性,或者是富文本,最根本是数据变成了一个脚本 xss 的防御 浏览器内置对反射性 xss 防御,对反射性 xss 进行拦截 对数据进行适当的转义,正文的转义,属性的转义和脚本中的转义,字符包括大于号,小于号,引号,以及&号 针对不能将 html 过滤或…

前端安全 · 4/1/2019 · 5 分钟阅读

其他的安全问题

上传文件产生的问题 上传文件 再次访问上传的文件 上传的问题被当作程序解析 上传问题防御 限制上传程序 限制上传后缀 文件类型检查 文件内容检查 不能访问文件 访问的时候禁止执行 程序输出:先读取文件,再输出 信息泄露 泄露系统的敏感信息:服务器配置,密码等 泄露用户敏感信息 泄露用户密码 信息泄露途径 错误信息失控 sql 注入 水平权限控制不当 xss/csrf OAuth 思想 在用户的授权…

前端安全 · 4/1/2019 · 2 分钟阅读

sql 注入的问题

关系型数据库 存放结构化数据:数据是有结构 可高效操作大量数据 数据之间的关联信息:a 表用户信息,b 表评论信息,ab 表 联查 常见:access(直接存问题)/sqlite(嵌入式用,.db 文件)/mysql(不是文件型数据库,是一个服务 3306 端口,连接 mysql,通过协议通讯,支持高并发)/mssql server(服务形式提供) sql 语言 有自己的语法 标准化的语言 用户关…

前端安全 · 4/1/2019 · 2 分钟阅读

密码安全问题

密码的作用 证明“你”是“你” 存储的密码与输入的密码进行对比 密码-泄露渠道 数据库被偷 服务器被入侵 通讯被窃听 内部人员泄露数据 撞库,多个网站的密码相同,一个泄露,多个泄露 密码-存储 严禁明文存储 密码->密文,单向的 变换复杂度要求 增加密码复杂度 加盐:帮助用户增加复杂度 每个人随机生成一个字符串 加密算法 md5(sha1(md5(id+ab83kd+原始密码+81kdso+盐+1…

前端安全 · 3/31/2019 · 2 分钟阅读

传输过程中的安全问题

浏览器->代理服务器->链路->服务器 http 协议是明文协议,就有一种传输链路窃听篡改的按钮全问题 http 窃听 窃听密码 敏感信息 个人资料 http 篡改 插入广告 重定向网站,返回 301 302 通过 header 头跳转 无法防御 xss 和 csrf 攻击 HTTPS 针对 http 协议传输的明文,在传输层加密,到达目的地解密,杜绝 http 窃听,篡改 中间人攻击 浏览器->…

前端安全 · 3/31/2019 · 2 分钟阅读

你想要的 vue 源码分析 · 10

合并配置 new Vue 有两个场景,一种是外部代码主动主动调用 new Vue(options),另一种是组件内部通过 new Vue(options)实例化组件,无论哪种场景,都会用到_init(options),首先会执行 merge options 的操作,组件内部通过 new Vue(options)实例化比外部主动调用 new Vue(options)要快,合并完的结果保存在 vm.$…

Vue 源码 · 3/30/2019 · 5 分钟阅读

你想要的 vue 源码分析 · 09

patch patch 过程是深度遍历的过程,每次把正在激活的 vm 实例赋给 activeInstance,初始化子组件时把 activeInstance 作为一个参数传入:在 initLifecycle 拿到当前激活的 vm 实例,获取当前激活的 vm 的 parent,把当前激活 vm 实例 push 到 parent.$children中,vm.$parent 指向当前 vm 的父实例,i…

Vue 源码 · 3/28/2019 · 11 分钟阅读

点击劫持

点击劫持 通过用户点击完成一个操作,但是用户并不知情 原理通过一个 iframe,将目标网站放在网站上,其实用户操作的其实是 iframe 步骤 目标网站是一个 iframe 嵌入网站中 目标网站是透明的 点击劫持防御 js 禁止内嵌 X-FRAME-OPTIONS 禁止内嵌

前端安全 · 3/26/2019 · 1 分钟阅读

cookie 的安全问题

cookies 的安全问题 cookies 的特点 前端数据存储 后端通过 http 头设置 请求时通过 http 头传给后端 前端可读写 遵守同源策略(在同一个源里请求都会带上 cookie) 域名(指定域名下才能使用 cookie) 有效期(cookie 在一段时间有效,可以让有效期设置成过去的时间,可以删除 cookie) 路径(指定路径使用 cookie) http-only (只在htt…

前端安全 · 3/25/2019 · 3 分钟阅读

留言板功能

文章描述了留言板功能的实现,包括comments数据库表结构、前端评论获取与添加逻辑(含token验证),以及后端查询评论和插入评论的代码流程。

编程 · 3/24/2019 · 2 分钟阅读

已显示 20 / 173 篇文章

也可以浏览:第 8 页全部文章档