https://juejin.cn/post/6844904006070829069
https://juejin.cn/post/6844904085024407566
https://segmentfault.com/a/1190000019365645?utm_source=sf-similar-article
—— | —— |
---|---|
1、git 的基础使用教程 比较全面 | 介绍 ts,vuejs 博客中也有介绍 |
博客介绍vue.js | |
2、git本地项目连接私人远程仓库以及遇到的问题 | 介绍小程序评论的功能 |
segmentfault - 小程序 —下拉刷新和上拉加载 |
—— | |
---|---|
‘ 不错,应该是培训出来的 JS分页 ’ | (JS 遍历数组 + ES6 特性)+ 循环案例 |
ts 简洁介绍 + JS 数组面试 | |
layer:H5弹出层解决方案 |
移动端vw | |
---|---|
hCoder视频教程网站; | github - amfe-flexible 方法 |
mui资源汇总; | |
移动端 lib-flexible 适配; |
利用 git 搭建静态网页并开启https
git 错误error: failed to push some refs to
爬虫网易云音乐数据;
Angular7 入门介绍;
json 模拟数据;
vue:
https://www.cnblogs.com/hi-shepherd/p/6911098.html
https://www.cnblogs.com/zhaowy/p/8513070.html
http://www.cnblogs.com/tu-0718/p/7521099.html
https://www.jianshu.com/p/dc5057e7ad0d - 全
https://www.jianshu.com/p/fde852e31cda -webpack打包vuex(注意eslint-loader这个规则
)
服务器:
https://www.jianshu.com/u/a258996de0c1
https://www.jianshu.com/p/3e6292233b5a
https://www.jianshu.com/p/cb89d9ac635e + https://github.com/liuzhike
https://www.jianshu.com/p/20c4d72fb700
https://blog.csdn.net/qq_15267341/article/details/52556859 - json
含义:
方法:
&& 与 || 区别:
const Comp = {
setup() {
const state = reactive({
a: 'jokcy'
})
return () => {
return <input value={state.a} onChange={(e) => state.a = e.targent.value} />
}
}
}
数据绑定分析:
- 创建了一个组件,通过 reactive 他有一个响应式的数据对象;
- 然后 render 里面的 input 的 value 绑定的是
state.a
以及他的 onChange 会修改state.a
; - 根本原因: vue会重新渲染我们return的render函数,来更新节点
const handlers = collectionTypes.has(target.constructor)
? collectionHandlers
: baseHandlers
observed = new Proxy(target, handlers)
可以说理解 vue3 的响应式原理过程就是理解这个 proxy创建 的过程,而了解这个过程,主要就是看第二个参数,在这里就是 collectionHandlers 或者 baseHandlers,大部分是后者,前者主要针对,Set、Map 等。
最后要记录这次的 effect 了,这里所谓的 effect 是什么呢?
- 就是当前正在调用这个对象的函数。
- 当从组件中的 data() 返回一个对象时,它在内部通过 reactive() 变成响应式对象。模板会被编译成能够使用这些响应式 property 的渲染函数。
- 渲染函数:
render(h) {
return h('input', state.a)
}
在我们的例子里面,就是 return 回去的 render 函数,这个函数在执行的时候会调用 state.a 所以会进入 proxy 对于 get的代理,这个时候 proxy 就调用了 track,那么这时候的 activeEffect 就是这个 render 方法。这里的 effect就是,当 state.a 改动的时候,我们需要重新执行该 render 方法来进行渲染。
换言之:
这里首先用 reactive 定义 state,传入 effect(也就是 render 方法),然后 effect 会先执行一遍,将 activeEffect 设置为它,然后 cleanup 一遍,因为本来就是空的所以也没什么用,之后执行到 $count.innerHTML = state.count 触发 state 的 get 代理,get 中调用 track(obj, TrackOpTypes.GET, 'count')
,将 activeEffect 收集到 dep(targetMap.set(obj, depsMap.set('count', activeEffect)
))中,最后赋值 activeEffect 为 undefined,到此 effect 首次执行完毕。
那到底什么是依赖呢?依赖其实就是 effect 函数
https://juejin.cn/post/6854573213410656263
https://juejin.cn/post/6866429607785005069#heading-2
https://juejin.cn/post/6883122206214193159
https://juejin.cn/post/6844903977599893517 -Effect篇
https://juejin.cn/post/6909698939696447496#heading-7 -收集依赖
https://juejin.cn/search?query=Vue3%20Proxy&type=all