前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue核心

vue核心

作者头像
前端小哥哥
发布2023-05-04 19:52:00
830
发布2023-05-04 19:52:00
举报
文章被收录于专栏:前端小哥哥前端小哥哥

why O(n)?

严格意义不是真的O(n),复杂度其实是O(nm)

how O(n)?

同层级比较

用index做key

vue: [0,1,2],[0,1] 误删 react: 会重新渲染 都是新建

虚拟dom过程

虚拟 DOM

什么是虚拟 DOM

代码语言:javascript
复制
{
 type: 'div',
 props: {
 children: []
 },
 el: xxxx
}

怎么创建虚拟 DOM

代码语言:javascript
复制
-> h 、createElement...
function h(type, props) { return { type, props } }
  1. 使用呢
代码语言:javascript
复制
JSX:
<div>
 <ul className='padding-20'>
   <li key='li-01'>this is li 01</li>
 </ul>
</div>

经过一些工具转一下:

代码语言:javascript
复制
createElement('div', {
 children: [
   createElement('ul', { className: 'padding-20' },
   createElement('li', { key: 'li-01'}, 'this is li 01'))
 ]
})

虚拟DOM的数据结构有了,那就是渲染了 (mount/render)

代码语言:javascript
复制
f(vnode) -> view

f(vode) {
document.createElement();
....

parent.insert()
. insertBefore
}

export const render = (vnode, parent) => {  }

<div id='app'></div>

diff 相关了(patch)

代码语言:javascript
复制
f(oldVnodeTree, newVnodeTree, parent) -> 调度? -> view
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • why O(n)?
  • how O(n)?
  • 用index做key
  • 虚拟dom过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档