├── .gitignore ├── README.md ├── babel.config.js ├── example ├── componentEmit │ ├── App.js │ ├── Foo.js │ ├── index.html │ └── main.js ├── componentSlot │ ├── App.js │ ├── Foo.js │ ├── index.html │ └── main.js ├── currentInstance │ ├── App.js │ ├── Foo.js │ ├── index.html │ └── main.js └── helloworld │ ├── App.js │ ├── index.html │ ├── main.js │ └── vue.runtime.esm-browser.js ├── jest.config.ts ├── lib ├── mini-vue3.cjs.js ├── mini-vue3.esm.js └── types │ └── mini-vue3.d.ts ├── package.json ├── rollup.config.js ├── src ├── index.ts ├── reactivity │ ├── __tests__ │ │ ├── computed.spec.ts │ │ ├── effect.spec.ts │ │ ├── reactive.spec.ts │ │ ├── readonly.spec.ts │ │ ├── ref.spec.ts │ │ ├── shallowReactive.spec.ts │ │ └── shallowReadonly.spec.ts │ ├── index.ts │ └── src │ │ ├── baseHandlers.ts │ │ ├── computed.ts │ │ ├── dep.ts │ │ ├── effect.ts │ │ ├── enumeration.ts │ │ ├── reactive.ts │ │ └── ref.ts ├── runtime-core │ ├── index.ts │ └── src │ │ ├── component.ts │ │ ├── componentEmit.ts │ │ ├── componentProps.ts │ │ ├── componentPublicInstance.ts │ │ ├── componentSlots.ts │ │ ├── creatApp.ts │ │ ├── h.ts │ │ ├── helpers │ │ └── renderSlots.ts │ │ ├── renderer.ts │ │ └── vnode.ts └── shared │ ├── __tests__ │ ├── base.spec.ts │ └── isType.spec.ts │ ├── index.ts │ └── src │ ├── ShapFlags.ts │ ├── base.ts │ └── isType.ts ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/README.md -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/babel.config.js -------------------------------------------------------------------------------- /example/componentEmit/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentEmit/App.js -------------------------------------------------------------------------------- /example/componentEmit/Foo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentEmit/Foo.js -------------------------------------------------------------------------------- /example/componentEmit/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentEmit/index.html -------------------------------------------------------------------------------- /example/componentEmit/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentEmit/main.js -------------------------------------------------------------------------------- /example/componentSlot/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentSlot/App.js -------------------------------------------------------------------------------- /example/componentSlot/Foo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentSlot/Foo.js -------------------------------------------------------------------------------- /example/componentSlot/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentSlot/index.html -------------------------------------------------------------------------------- /example/componentSlot/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/componentSlot/main.js -------------------------------------------------------------------------------- /example/currentInstance/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/currentInstance/App.js -------------------------------------------------------------------------------- /example/currentInstance/Foo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/currentInstance/Foo.js -------------------------------------------------------------------------------- /example/currentInstance/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/currentInstance/index.html -------------------------------------------------------------------------------- /example/currentInstance/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/currentInstance/main.js -------------------------------------------------------------------------------- /example/helloworld/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/helloworld/App.js -------------------------------------------------------------------------------- /example/helloworld/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/helloworld/index.html -------------------------------------------------------------------------------- /example/helloworld/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/helloworld/main.js -------------------------------------------------------------------------------- /example/helloworld/vue.runtime.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/example/helloworld/vue.runtime.esm-browser.js -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/jest.config.ts -------------------------------------------------------------------------------- /lib/mini-vue3.cjs.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/lib/mini-vue3.cjs.js -------------------------------------------------------------------------------- /lib/mini-vue3.esm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/lib/mini-vue3.esm.js -------------------------------------------------------------------------------- /lib/types/mini-vue3.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/lib/types/mini-vue3.d.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/package.json -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/rollup.config.js -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /** mini-vue3 的出口文件 */ 2 | export * from './runtime-core/index' 3 | -------------------------------------------------------------------------------- /src/reactivity/__tests__/computed.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/computed.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/effect.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/effect.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/reactive.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/reactive.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/readonly.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/readonly.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/ref.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/ref.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/shallowReactive.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/shallowReactive.spec.ts -------------------------------------------------------------------------------- /src/reactivity/__tests__/shallowReadonly.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/__tests__/shallowReadonly.spec.ts -------------------------------------------------------------------------------- /src/reactivity/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/index.ts -------------------------------------------------------------------------------- /src/reactivity/src/baseHandlers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/baseHandlers.ts -------------------------------------------------------------------------------- /src/reactivity/src/computed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/computed.ts -------------------------------------------------------------------------------- /src/reactivity/src/dep.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/dep.ts -------------------------------------------------------------------------------- /src/reactivity/src/effect.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/effect.ts -------------------------------------------------------------------------------- /src/reactivity/src/enumeration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/enumeration.ts -------------------------------------------------------------------------------- /src/reactivity/src/reactive.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/reactive.ts -------------------------------------------------------------------------------- /src/reactivity/src/ref.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/reactivity/src/ref.ts -------------------------------------------------------------------------------- /src/runtime-core/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/index.ts -------------------------------------------------------------------------------- /src/runtime-core/src/component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/component.ts -------------------------------------------------------------------------------- /src/runtime-core/src/componentEmit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/componentEmit.ts -------------------------------------------------------------------------------- /src/runtime-core/src/componentProps.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/componentProps.ts -------------------------------------------------------------------------------- /src/runtime-core/src/componentPublicInstance.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/componentPublicInstance.ts -------------------------------------------------------------------------------- /src/runtime-core/src/componentSlots.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/componentSlots.ts -------------------------------------------------------------------------------- /src/runtime-core/src/creatApp.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/creatApp.ts -------------------------------------------------------------------------------- /src/runtime-core/src/h.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/h.ts -------------------------------------------------------------------------------- /src/runtime-core/src/helpers/renderSlots.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/helpers/renderSlots.ts -------------------------------------------------------------------------------- /src/runtime-core/src/renderer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/renderer.ts -------------------------------------------------------------------------------- /src/runtime-core/src/vnode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/runtime-core/src/vnode.ts -------------------------------------------------------------------------------- /src/shared/__tests__/base.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/__tests__/base.spec.ts -------------------------------------------------------------------------------- /src/shared/__tests__/isType.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/__tests__/isType.spec.ts -------------------------------------------------------------------------------- /src/shared/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/index.ts -------------------------------------------------------------------------------- /src/shared/src/ShapFlags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/src/ShapFlags.ts -------------------------------------------------------------------------------- /src/shared/src/base.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/src/base.ts -------------------------------------------------------------------------------- /src/shared/src/isType.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/src/shared/src/isType.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rainer-Yu/learn-vue3/HEAD/yarn.lock --------------------------------------------------------------------------------