diff --git a/demo/index.js b/demo/index.js
index c79c09d..89166fd 100644
--- a/demo/index.js
+++ b/demo/index.js
@@ -1,5 +1,5 @@
-import React from '../src/React'
-import ReactDOM from '../src/ReactDOM'
+import React from '../src/react'
+import ReactDOM from '../src/react-dom'
const Welcome = props =>
Hello, {props.name}
diff --git a/src/ReactCompositeComponent.js b/src/react-dom/ReactCompositeComponent.js
similarity index 95%
rename from src/ReactCompositeComponent.js
rename to src/react-dom/ReactCompositeComponent.js
index ddc17ba..9b4c9d5 100644
--- a/src/ReactCompositeComponent.js
+++ b/src/react-dom/ReactCompositeComponent.js
@@ -1,5 +1,5 @@
-import React from './React'
-import { toRealDOM } from './ReactDOM';
+import React from '../react'
+import { toRealDOM } from './render';
export class Component {
constructor (props = {}) {
@@ -33,6 +33,7 @@ function componentToRealDOM (component) {
// class 类型render参数为空
let $dom = toRealDOM(component.render(component.props))
// update $dom
+ // todo: diff
if (component.$dom && component.$dom.parentNode) {
component.$dom.parentNode.replaceChild($dom, component.$dom)
}
diff --git a/src/react-dom/diff.js b/src/react-dom/diff.js
new file mode 100644
index 0000000..cd93e7d
--- /dev/null
+++ b/src/react-dom/diff.js
@@ -0,0 +1,11 @@
+export function diffAndPatch ($parent, oldVNode, newVNode) {
+
+}
+
+function isPropsChanged(oldProps, newProps) {
+
+}
+
+function isTypeChanged(params) {
+
+}
diff --git a/src/react-dom/index.js b/src/react-dom/index.js
new file mode 100644
index 0000000..f064161
--- /dev/null
+++ b/src/react-dom/index.js
@@ -0,0 +1,5 @@
+import { render } from './render';
+
+export default {
+ render
+}
diff --git a/src/ReactDOM.js b/src/react-dom/render.js
similarity index 100%
rename from src/ReactDOM.js
rename to src/react-dom/render.js
diff --git a/src/React.js b/src/react/createElement.js
similarity index 60%
rename from src/React.js
rename to src/react/createElement.js
index d994df4..7f4de04 100644
--- a/src/React.js
+++ b/src/react/createElement.js
@@ -1,6 +1,4 @@
-import { Component } from './ReactCompositeComponent';
-
-function createElement(type, props, ...children) {
+export default function createElement(type, props, ...children) {
const vdom = {
type,
props,
@@ -13,8 +11,3 @@ function createElement(type, props, ...children) {
Object.freeze(vdom)
return vdom
}
-
-export default {
- createElement,
- Component
-}
diff --git a/src/react/index.js b/src/react/index.js
new file mode 100644
index 0000000..874de2d
--- /dev/null
+++ b/src/react/index.js
@@ -0,0 +1,7 @@
+import { Component } from '../react-dom/ReactCompositeComponent';
+import createElement from './createElement';
+
+export default {
+ createElement,
+ Component
+}