我的博客

每天进步一点点


  • 首页

  • 标签

  • 分类

  • 归档

动手实现Vue.js响应式

发表于 2018-10-21 | 分类于 vue.js

想要实现这样的功能:

1
2
3
4
5
6
7
let price = 5
let quantity = 2
let total = price * quantity
console.log(total) // 10

price = 10 // 修改data
console.log(total) // 如果是响应式,就应该是20

现在就是来实现这样的响应式功能

既然要实现改变单价或质量,总价格就会更新,本质上就是当数据改变时,再次执行计价

因此我们应该把这个计价封装成一个函数,以便之后调用

1
2
3
target = () => {
total = price * quantity
}

阅读全文 »

笔记

发表于 2018-10-05

css水平居中

css3动画 @keyframes

promise实现

改变this指向:

  • 箭头函数
  • 函数内部使用_this=this
  • 使用call apply bind
  • new关键字

apply接收的是数组,call接收参数列表

js继承方式

  • 借用构造函数
  • 组合继承
  • 原型继承,后来别Object.create()规范化了
  • 寄生
  • 寄生组合

箭头函数

  • this指向问题
  • 不可以当做构造函数,无法使用new
  • 不存在arguments对象,可用rest代替

Promise

  • 有异步操作时,就要用到promise来封装
  • reject方法等同于抛出错误
  • 已经resolve了,就不能抛出错误了
  • then方法中的第二个参数定义的是reject状态的回调函数,但是一般不这么做,一般是将promise所产生的错误统一由catch方法来捕获,因为promise的错误具有冒泡性质,用catch可以捕获then方法执行中的错误,类似于try…catch…
  • finally方法意味着无论如何,最后都会执行它,比如关掉服务器
  • 将多个promise实例,包装成一个新的promise实例
  • resolve方法将现有对象转为promise对象
  • reject类似于throw,是用来抛出错误的;catch是用来处理错误
  • 如果在 then 的第一个函数里抛出了异常,后面的 catch 能捕获到,而第二个函数捕获不到

link和@import的区别

  • link不仅可以引入css,还支持rss等其他事务;@import只支持css
  • link在页面加载时同步引入css,@import需要等到页面加载完毕后才引入

事件绑定

  • 行内绑定
  • 动态绑定
  • 事件监听

jq事件绑定

  • bind,one,unbind

async await

navigator.userAgent获取浏览器版本

serviceworker 消息推送 离线缓存

xss 跨站脚本攻击
csrf 跨站请求伪造

小知识点总结

发表于 2018-09-28

DOCTYPE

  • 告知浏览器按照哪个版本的Html进行编写命令,什么类型的文档定义来解析文档

div不换行

  • display: inline-block
  • float
  • flex
  • position: absolute

学习Vue.js源码的前置知识

发表于 2018-07-21 | 分类于 vue.js

前置知识

  • Flow JavaScript静态类型检测,类似于typescript
  • object.defineProperty
  • proxy get set

Hexo基本操作

发表于 2017-10-30 | 分类于 Hexo

写文章

  • hexo new 文章标题

预览效果

  • hexo s 开启hexo server 在localhost调试

发布到github page

  • hexo clean 清除历史数据
  • hexo d -g 先生成再发布
1…67
陈泳仰

陈泳仰

53 日志
16 分类
17 标签
GitHub E-Mail
© 2017 — 2019 陈泳仰