实现一个简洁版的Mini-vue框架,包含三个模块:
渲染系统模块(runtime->vnode–>真实DOM)
可响应式系统模块( reactive)
应用程序入口模块(createApp(App).mount(“#app”))
渲染系统的实现
渲染系统主要实现三个功能:
(1) h函数,用于返回一个VNode对象;
(2) mount函数,用于将VNode挂载到DOM上;
(3) patch函数,用于将两个VNode进行对比,决定如何处理新的VNode.
index.js
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app"></div>
<script src="./renderer.js"></script>
<script>
//通过h函数创建vnode
const vnode= h("div" ,{class :"info"},[
h("h2",null,"hello html")
])
console.log(vnode)
//通过mount函数,将vnode挂载到div#app上
mount(vnode,document.querySelector("#app"))
//创建新的vnode
setTimeout(()=>{
const vnode1= h("span",{class:"newinfo"},"哈哈哈哈")
pat