let vertualDom =createElement('ul',{class:'list'},[createElement('ul',{class:'list'},['a']),createElement('ul',{class:'list'},['b']),createElement('ul',{class:'list'},['c'])])
const render =(vnode){let el = document.createElement(vnode.type);return el;}
打印一下:
let vertualDom =createElement('ul',{class:'list'},[createElement('ul',{class:'list'},['a']),createElement('ul',{class:'list'},['b']),createElement('ul',{class:'list'},['c']),])let el =render(vertualDom);console.log(el);
2.有了DOM之后,我们给dom设置属性.由于属性可能比较多,
因此我们使用for ... in 拿到键和值
使用setAttribute来设置属性
constrender=(vnode)=>{let el = document.createElement(vnode.type);let props = vnode.type;for(let key in props){el.setAttribute(key, props[key]);}}
检测一下,改写vertualDom
let vertualDom =createElement('ul',{class:'list', style:'border:1px solid black'},[createElement('ul',{class:'list'},['a']),createElement('ul',{class:'list'},['b']),createElement('ul',{class:'list'},['c']),])let el =render(vertualDom);
document.body.appendChild(el);
每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,给你 M 对整数 (A,B),表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是求出…