Commit Graph

262 Commits

Author SHA1 Message Date
三咲智子 Kevin Deng af75b64b40
feat: scope id for child component 2024-11-14 20:52:23 +08:00
三咲智子 Kevin Deng 247617612a
feat(vapor): merge inherited attrs with current attrs 2024-11-14 20:21:20 +08:00
Kevin Deng 三咲智子 c91586528a
feat(runtime-vapor): fallback component (#232)
* feat(runtime-vapor): fallback component

* fix
2024-11-13 16:53:44 +08:00
三咲智子 Kevin Deng 39f85ecc21
fix(runtime-vapor): don't overridden attrs in static template
closes #253
2024-11-13 16:16:21 +08:00
三咲智子 Kevin Deng 5f92ff8ca2
feat(vapor): dynamic component 2024-11-13 14:56:39 +08:00
三咲智子 Kevin Deng fab9917ae4
fix(runtime-vapor): component self-reference 2024-11-13 11:00:07 +08:00
三咲智子 Kevin Deng 114d501524
feat(compiler-vapor): support implicit prop in template 2024-11-13 10:12:12 +08:00
Kevin Deng 三咲智子 c574faa8f3
refactor(runtime-vapor): simplify directive mechanism (#278)
* feat: custom directive v2

* wip

* fix: directive

* fix

* refactor

* refactor: remove ref for el
2024-11-13 08:41:02 +08:00
三咲智子 Kevin Deng 3fa4069a1c
perf(runtime): clear container on unmount 2024-10-06 01:42:32 +08:00
三咲智子 Kevin Deng c1c316d392
feat(runtime-vapor): fast path for clear all children 2024-10-05 21:27:57 +08:00
三咲智子 Kevin Deng 3867942ddb
fix(runtime-vapor): stale memo cache 2024-10-05 20:33:35 +08:00
三咲智子 Kevin Deng 3d487184ea
chore: rename repo name 2024-10-05 15:59:15 +08:00
三咲智子 Kevin Deng 604c42db49
chore(runtime-vapor): add benchmark build flag 2024-09-29 01:55:00 +08:00
Rizumu Ayaka eda2a43f07
refactor(runtime-vapor): remove shallowRef list for v-for (#281) 2024-09-29 00:47:44 +08:00
Rizumu Ayaka 5f6cd32d8b
test(runtime-vapor): fix shallowRef in v-for (#280) 2024-09-28 01:53:29 +08:00
三咲智子 Kevin Deng b962aa52ff
refactor(runtime-vapor): remove support of shallowRef in v-for
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
2024-09-28 01:42:45 +08:00
Rizumu Ayaka e07eac9ba3
feat(runtime-vapor): createSelector (#279) 2024-09-22 02:30:21 +08:00
Kevin Deng 三咲智子 884c190f08
feat: `v-memo` for `v-for` (#276) 2024-09-19 15:40:20 +08:00
三咲智子 Kevin Deng cc58f651e1
refactor(compiler-vapor): remove `proxyRefs` in v-for 2024-09-19 01:17:16 +08:00
Kevin Deng 三咲智子 e1bedb8ad0
refactor!: drop custom directives (#274) 2024-09-19 01:15:17 +08:00
Rizumu Ayaka 6791c887da
perf: improve benchmark test code (#268) 2024-09-17 23:19:33 +08:00
三咲智子 Kevin Deng 3f1ee07fd2
fix(runtime-vapor): swc minify error 2024-09-17 16:26:31 +08:00
三咲智子 Kevin Deng 594cb1412d
Merge remote-tracking branch 'upstream/main' 2024-09-17 10:33:35 +08:00
三咲智子 Kevin Deng 2ef97fec30
refactor: isolatedDeclarations for vapor 2024-08-09 17:00:27 +08:00
三咲智子 Kevin Deng 5632e2fe68
refactor: `baseWatch` always return effect 2024-08-09 00:41:31 +08:00
Rizumu Ayaka be332dc5a8
perf(runtime-vapor): `children` helper (#263)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-07-29 13:54:33 +08:00
三咲智子 Kevin Deng 07444b3266
feat(runtime-vapor): try to support devtools 2024-06-21 14:03:11 +08:00
Rizumu Ayaka 7d90c887c0
fix(runtime-vapor): current instance is not attached to static slots (#247)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-06-21 01:14:34 +08:00
XiaoDong be6a2d1d35
fix(runtime-vapor): apiLifeCycle circular dependencies (#244) 2024-06-20 14:33:16 +08:00
Kevin Deng 三咲智子 97f0b3bc33
refactor: component slots (#238)
Co-authored-by: Doctor Wu <doctorwu@moego.pet>
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
2024-06-19 01:09:17 +08:00
XiaoDong 3ac951b5b5
feat(runtime-vapor): implement app.config.performance (#230)
* feat(runtime-capor): add app.config.performance

* refactor: move formatComponentName to component.ts

* refactor: update import in warning.ts

* fix

* refactor

* fix order

---------

Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-06-16 16:50:36 +08:00
三咲智子 Kevin Deng a1797f8861
fix(runtime-vapor): infer component name from registry 2024-06-16 14:22:12 +08:00
Rizumu Ayaka c9241da4fa
feat(runtime-vapor): slot props (#227) 2024-06-10 23:19:39 +08:00
三咲智子 Kevin Deng 598b55f1e8
test(runtime-vapor): finish expose and inject tests 2024-06-05 04:35:13 +08:00
三咲智子 Kevin Deng bbd1944ce5
test(runtime-vapor): finish createVaporApp unit tests 2024-06-05 04:20:20 +08:00
Doctor Wu 8ccfce5ec7
refactor(compiler/runtime-vapor): remove unnecessary slot key (#225) 2024-06-03 22:34:47 +08:00
Doctor Wu 8a59311a22
perf(compiler-vapor/runtime-vapor): finer update granularity (#222) 2024-06-03 06:48:13 +08:00
Rizumu Ayaka b2259a5f92
refactor: general destructuring function (#221) 2024-05-31 15:49:49 +08:00
Rizumu Ayaka 868c4294a0
feat: destructuring + nesting in v-for (#217)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-29 16:25:08 +08:00
Doctor Wu 107569b922
feat(runtime-vapor): resolve assets of components & directives (#214) 2024-05-29 01:43:47 +08:00
Rizumu Ayaka b5ecb72864
feat: directive lifecycle hooks in `v-for`, `v-if` and component (#123)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-27 02:47:51 +08:00
ubugeeei 969f53f2e7
test(runtime-vapor): api lifecycle hooks (#215)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-27 02:37:06 +08:00
Doctor Wu 4e13a57d9c
feat(compiler/runtime-vapor): implement v-slots + v-for / v-if (#207)
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-21 08:50:10 +08:00
三咲智子 Kevin Deng d77c7ade77
feat(runtime-vapor): implement app plugin 2024-05-17 20:54:08 +08:00
Jevon b776f92596
feat: v-once for component and v-for (#201)
* feat: v-once with v-for / v-once for component

* refactor

* refactor

---------

Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-17 20:44:58 +08:00
三咲智子 Kevin Deng f5f1150d8a
feat(runtime-vapor): add globalProperties 2024-05-17 20:39:10 +08:00
三咲智子 Kevin Deng 4f9052358e
fix: pass warn to `toHandlers` only on dev mode 2024-05-13 02:19:11 +08:00
Rizumu Ayaka 9346f885b0
refactor(runtime-vapor): remove optional chaining syntax (#208) 2024-05-12 19:09:31 +08:00
Lulu b3cb392f5c
feat: support usage of `v-once` with `v-if` (#200)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-12 18:20:14 +08:00
三咲智子 Kevin Deng 1c54cae29a
refactor(runtime-vapor): remove default value 2024-05-12 00:01:27 +08:00
三咲智子 Kevin Deng 639c847c0c
refactor(runtime-shared): move `Data` 2024-05-11 23:14:26 +08:00
三咲智子 Kevin Deng d376349d09
refactor(runtime-vapor): replace Object.entries with for-in 2024-05-04 02:33:40 +09:00
三咲智子 Kevin Deng bfb52502f8
feat(runtime-shared): init 2024-05-01 20:19:25 +09:00
Doctor Wu 69580515d9
feat: implement setRef update (#191)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-05-01 03:17:16 +09:00
三咲智子 Kevin Deng 6f7d219654
fix(runtime-vapor): set raw value for dynamic attrs 2024-05-01 00:09:59 +09:00
三咲智子 Kevin Deng fb58e65d3d
Merge remote-tracking branch 'upstream/minor' 2024-04-29 17:50:30 +09:00
三咲智子 Kevin Deng 05f4ade4d9
feat(runtime-vapor): warning with component stack 2024-04-28 22:50:17 +09:00
Jevon cd582949f2
feat(runtime-vapor): `v-show` for component (#188)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-04-27 00:02:34 +08:00
Doctor Wu b7b652eb71
feat(runtime-vapor): template ref on component (#185) 2024-04-25 04:57:45 +08:00
GaoNeng d6c5bcf833
feat(runtime-core): implement debug hook (#183) 2024-04-21 20:30:47 +08:00
Doctor Wu d490bf2ed7
feat(runtime-vapor): implement expose (#181)
Co-authored-by: Kevin Deng 三咲智子 <sxzz@sxzz.moe>
2024-04-20 22:17:30 +08:00
三咲智子 Kevin Deng e67e6432f0
refactor: merge createTextNode & setText 2024-04-20 21:48:44 +08:00
Jevon 37df043adc
feat(runtime-vapor): runtime for v-on in component (#178)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-04-19 16:49:21 +08:00
三咲智子 Kevin Deng 7cacb655e0
fix(runtime-vapor): flush post jobs after unmount 2024-04-19 16:19:56 +08:00
Rizumu Ayaka b447aceac5
fix(runtime-vapor): detach effect scope & component instance (#174) 2024-04-16 16:55:44 +08:00
三咲智子 Kevin Deng dce9b61ae1
refactor(runtime-vapor): extract firstEffect 2024-04-15 04:41:56 +08:00
三咲智子 Kevin Deng bdc43226a0
refactor(runtime-vapor): export function 2024-04-14 17:43:22 +08:00
Rizumu Ayaka 07926564fc
feat(runtime-vapor): `createSlot` (#170) 2024-04-14 17:41:58 +08:00
Jevon a0bd0e9c5f
feat(compiler-vapor): ref for `v-for` (#167)
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-04-13 02:54:34 +08:00
Rizumu Ayaka 9a33d79963
feat(runtime-vapor): attach current instance to render slot (#168) 2024-04-06 22:10:45 +08:00
ubugeeei db140a1e37
feat(runtime-vapor): setup helpers useAttrs & useSlots (#172) 2024-04-01 03:51:37 +08:00
ubugeeei ba17fb9910
fix(runtime-vapor): trigger updated hooks across components (#165) 2024-03-24 20:30:14 +08:00
ubugeeei 78f74ce241
feat(runtime-vapor): component slot (#143)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-03-24 20:29:00 +08:00
Doctor Wu bd888b9b1e
feat(runtime-vapor): add app-level error handler (#160)
Co-authored-by: Kevin Deng 三咲智子 <sxzz@sxzz.moe>
2024-03-23 00:38:34 +08:00
ubugeeei 5c9a15140d
feat(runtime-vapor): provide and inject (#158)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-03-22 23:41:16 +08:00
Doctor Wu 9a2c12e3cd
feat(runtime-vapor): implement setupContext (#157) 2024-03-22 23:28:18 +08:00
Doctor Wu 38e167ceb8
feat: implement inheritAttrs (#153)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-03-19 00:24:58 +08:00
Rizumu Ayaka 2661cb2474
refactor(reactivity): remove middleware (#156) 2024-03-18 21:57:18 +08:00
Rizumu Ayaka 64e83689a0
refactor(runtime-vapor): `renderEffect` based on `ReactiveEffect` + remove `renderWatch` (#155) 2024-03-18 20:13:40 +08:00
Rizumu Ayaka 46761880e9
refactor(baseWatch): rename onEffectCleanup to onWatcherCleanup and getCurrentEffect to getCurrentWatcher for clarity 2024-03-17 22:39:11 +08:00
Rizumu Ayaka db4040d13a
refactor(scheduler): use bitwise flags for scheduler jobs + move scheduler into reactivity
related: https://github.com/vuejs/core/pull/10407
2024-03-17 22:33:36 +08:00
Kevin Deng 三咲智子 463b47e83d
feat: create component & component lifecycle/props/attrs (#151) 2024-03-16 18:54:36 +08:00
三咲智子 Kevin Deng 5d15314c4e
refactor(runtime-vapor): remove created & beforeCreate hooks 2024-03-16 03:32:19 +08:00
三咲智子 Kevin Deng d282af9430
refactor(compiler-vapor): check reserved prop on compiler only 2024-03-15 22:26:03 +08:00
三咲智子 Kevin Deng 808d17dbd1
refactor(runtime-vapor): split create component & render 2024-03-14 16:32:22 +08:00
三咲智子 Kevin Deng 7e0f15fa7c
refactor(runtime-vapor): re-organize 2024-03-14 16:02:46 +08:00
三咲智子 Kevin Deng b4da5a8da6
feat(runtime-vapor): support v-bind for event 2024-03-14 14:25:54 +08:00
Jevon 9412c20531
feat: support v-on="obj" (#149)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-03-14 14:15:45 +08:00
三咲智子 Kevin Deng ebd3710d72
refactor(runtime-vapor): don't record metadata for `on` 2024-03-07 17:44:42 +08:00
三咲智子 Kevin Deng 280b8cbdab
refactor: remove getCurrentEffect, add effect flag for on
Use the effect flag to distinguish whether it is in the effect of a v-for block.
2024-03-07 17:41:07 +08:00
三咲智子 Kevin Deng 03d1d0a956
refactor: delegate set modelValue event 2024-03-06 00:48:34 +08:00
三咲智子 Kevin Deng 11b99ba9ab
fix(runtime-vapor): clean event handler in current effect 2024-03-05 23:43:19 +08:00
Rizumu Ayaka b925c6290b
perf(runtime-vapor): don't wrap `Array.from` for array in v-for (#141) 2024-03-03 00:40:02 +08:00
FireBushtree ccd3f3923f
fix(runtime-vapor): trigger event after `v-model` (#137) 2024-03-01 18:23:49 +08:00
三咲智子 Kevin Deng 5a0bc110d9
refactor(runtime-vapor): record event metadata as array 2024-03-01 18:16:17 +08:00
三咲智子 Kevin Deng 7f861441d7
refactor(runtime-vapor): extract metadata kind 2024-03-01 17:50:54 +08:00
三咲智子 Kevin Deng 4af8e87953
feat: support more source types for v-for
closes #139

Co-authored-by: wangjie36 <826036140@qq.com>
2024-03-01 06:37:53 +08:00
三咲智子 Kevin Deng d51d55843f
refactor(runtime-vapor): tweak createFor 2024-03-01 04:22:17 +08:00
三咲智子 Kevin Deng fac30af9ec
refactor(runtime-vapor): tweak types 2024-02-27 16:48:33 +08:00
三咲智子 Kevin Deng 2c15171dcf
feat: add next helper for sibilings 2024-02-26 22:37:08 +08:00