Commit Graph

262 Commits

Author SHA1 Message Date
三咲智子 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
三咲智子 Kevin Deng 2075042956
refactor: remove append helper
replace `append` with `insertBefore`
2024-02-26 21:38:04 +08:00
三咲智子 Kevin Deng 11bda8a088
refactor(runtime-vapor): move template to dom
[skip release]
2024-02-26 21:19:28 +08:00
三咲智子 Kevin Deng e5c1f8d1a2
refactor: split delegate & register event 2024-02-26 15:18:16 +08:00
三咲智子 Kevin Deng 67e785afd7
chore(runtime-vapor): simplify 2024-02-25 21:06:19 +08:00
三咲智子 Kevin Deng c1d9b64b7b
refactor: re-organize exports 2024-02-25 15:23:29 +08:00
三咲智子 Kevin Deng fb3e8ee8c0
refactor: merge delegate & modifier options of event 2024-02-25 15:11:25 +08:00
Evan You ff943f4ddf
perf: optimize scheduler queueJob performance (#138) 2024-02-25 11:29:45 +08:00
三咲智子 Kevin Deng 669fec8dad
feat: delegate event for vapor
closes #136
2024-02-25 02:07:20 +08:00
三咲智子 Kevin Deng 23653cc447
refactor(runtime-vapor): split props & event metadata 2024-02-23 13:31:32 +08:00
三咲智子 Kevin Deng 26f29b2529
refactor(runtime-vapor): move metadata from instance to node 2024-02-23 01:21:00 +08:00
三咲智子 Kevin Deng a87d2120e0
refactor(runtime-vapor): drop array parent 2024-02-23 00:53:42 +08:00
三咲智子 Kevin Deng d7bd6c99da
refactor(compiler-vapor): generate fragment for only one element
closes #133
2024-02-23 00:52:02 +08:00
三咲智子 Kevin Deng 531f4f0052
perf(runtime-vapor): improve traverse children 2024-02-22 02:08:05 +08:00
ygj6 b11ecbda69
feat(runtime-vapor): reset old props when setting dynamic props (#131)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-20 21:13:48 +08:00
三咲智子 Kevin Deng e10f7d1689
refactor(runtime-vapor): fix component type 2024-02-14 14:43:18 +08:00
三咲智子 Kevin Deng 66cea4b325
revert: "refactor: remove update function from compiler"
Bad for performance, so revert it temporarily

This reverts commit be65b98a33.
2024-02-12 22:01:42 +08:00
FireBushtree 3d10925c53
feat(runtime-vapor): support patch style (#126)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-10 21:31:44 +08:00
三咲智子 Kevin Deng 184d72e747
feat(runtime-vapor): implement vModelRadio
Fully supported v-model for native elements.
2024-02-10 16:15:23 +08:00
三咲智子 Kevin Deng 3550765147
refactor: add isVaporReservedProp 2024-02-10 14:41:51 +08:00
ubugeeei 52311fa7ae
feat(runtime-vapor): component attrs (#124) 2024-02-10 13:07:13 +08:00
三咲智子 Kevin Deng d16359c45b
feat(runtime-vapor): add no side effects annotation 2024-02-08 23:22:03 +08:00
三咲智子 Kevin Deng 985d4c7422
refactor: return only one node from children helper 2024-02-08 23:03:42 +08:00
Rizumu Ayaka ccdc634c24
fix(runtime-vapor): v-for move list items are not always effective (#121) 2024-02-07 22:01:22 +08:00
Rizumu Ayaka a15f609044
test(runtime-vapor): refactor duplicate compoent test code (#120)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-07 21:03:46 +08:00
三咲智子 Kevin Deng 75c8ff5cb7
fix(runtime-vapor): update old value even if no beforeUpdate hook 2024-02-07 20:38:26 +08:00
三咲智子 Kevin Deng 4be349ebc4
feat(runtime-vapor): implement vModelCheckbox & vModelDynamic 2024-02-07 20:14:50 +08:00
三咲智子 Kevin Deng f4f467811a
fix(runtime-vapor): only update oldValue in beforeUpdate hook 2024-02-07 19:47:56 +08:00
三咲智子 Kevin Deng 94272c6163
fix(runtime-vapor): retrieve prop value from element 2024-02-07 19:24:06 +08:00
三咲智子 Kevin Deng 99da2e5abe
refactor(compiler-vapor): remove runtime fragment
returns array directly
2024-02-07 17:29:04 +08:00
三咲智子 Kevin Deng 68b0caf495
fix(compiler-vapor): convert to display string for each text 2024-02-07 04:40:49 +08:00
三咲智子 Kevin Deng 38865c7ca1
refactor: simplify event handler 2024-02-07 01:37:07 +08:00
三咲智子 Kevin Deng 77743006b8
refactor(runtime-vapor): update selected option 2024-02-06 20:24:59 +08:00
ubugeeei e9e7fe414b
feat(runtime-vapor): component props validator (#114) 2024-02-05 03:29:59 +08:00
三咲智子 Kevin Deng 95782883b3
fix(runtime-vapor): special check for setDOMProp 2024-02-05 03:28:32 +08:00
ygj6 d573a3d2f2
feat: support v-bind="{}" (#106)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-05 02:44:30 +08:00
三咲智子 Kevin Deng ed954bcd33
feat(runtime-vapor): support v-model w/ select tag 2024-02-04 22:49:59 +08:00
ubugeeei cde91e4fb5
feat(runtime-vapor): component emits (#103)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-04 21:18:57 +08:00
ubugeeei ea5f7ec076
test(runtime-vapor): component props (#99)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-04 20:46:08 +08:00
三咲智子 Kevin Deng be65b98a33
refactor: remove update function from compiler 2024-02-03 05:02:07 +08:00
三咲智子 Kevin Deng e7e3b1c73e
revert: "refactor: id rewrite of vapor v-for"
This reverts commit 31f497b1d1.
2024-02-01 19:12:29 +08:00
三咲智子 Kevin Deng 31f497b1d1
refactor: id rewrite of vapor v-for 2024-02-01 17:42:46 +08:00
Rizumu Ayaka 757af933dc
test(runtime-vapor): `dom/patchProp.ts` (#102)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-02-01 14:35:52 +08:00
三咲智子 Kevin Deng 261b7d40a4
feat(runtime-vapor): add defineComponent 2024-01-31 18:08:07 +08:00
三咲智子 Kevin Deng 46e83e9681
refactor(compiler-vapor): symbol for newline (#104) 2024-01-31 17:26:07 +08:00
三咲智子 Kevin Deng 681dc5d954
feat(compiler-vapor): v-for (#101) 2024-01-31 17:00:19 +08:00
三咲智子 Kevin Deng f7642ab77c
refactor(compiler-vapor): remove createTextNode argument 2024-01-31 13:16:03 +08:00
三咲智子 Kevin Deng e02725665d
fix(compiler-vapor): import helper with type check 2024-01-30 22:21:59 +08:00
三咲智子 Kevin Deng 74f7e56fb8
refactor(runtime-vapor): throw errors when node is not found 2024-01-30 05:39:53 +08:00
三咲智子 Kevin Deng cd0e3273d2
test: add normalizeBlock 2024-01-30 05:39:53 +08:00
Rizumu Ayaka 489f11a1f9
refactor(runtime-vapor): template fragment (#100)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-01-30 04:15:52 +08:00
三咲智子 Kevin Deng 63aacf6194
style: respect root prettier config 2024-01-29 03:11:30 +08:00
三咲智子 Kevin Deng 17af64c0c1
feat(runtime-vapor): createFor 2024-01-28 20:16:35 +08:00
Rizumu Ayaka ede6c29434
feat(compiler-vapor): `v-if` (#96)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-01-28 01:31:20 +08:00
三咲智子 Kevin Deng 359a5dab19
refactor: get oldVal from metadata 2024-01-25 17:00:19 +08:00
三咲智子 Kevin Deng 1f134ae43a
feat(runtime-vapor): expose vapor mode flag 2024-01-24 22:11:46 +08:00
三咲智子 Kevin Deng 32604cf91c
refactor(runtime-vapor): template refs 2024-01-21 13:59:56 +08:00
三咲智子 Kevin Deng 31e8fa35c0
feat: v-model for input & textarea 2024-01-21 02:16:53 +08:00
三咲智子 Kevin Deng 782d60475d
feat: basic template ref 2024-01-20 23:48:10 +08:00
三咲智子 Kevin Deng 6a26db2adc
refactor(runtime-vapor): remove ref wrapper for mounted state 2024-01-20 20:46:41 +08:00
三咲智子 Kevin Deng 9d071e7c31
fix(runtime-vapor): set setupState 2024-01-20 20:22:06 +08:00
三咲智子 Kevin Deng 35334fd33e
fix(runtime-vapor): patch prop 2024-01-20 13:38:20 +08:00
ygj6 775491e46d
feat: prop and attr modifiers for v-bind (#79) 2024-01-20 13:31:16 +08:00
三咲智子 Kevin Deng fc651f6905
fix(runtime-vapor): normalize state&block 2024-01-19 22:43:43 +08:00
三咲智子 Kevin Deng 305a651c68
chore: update comment 2024-01-19 17:10:10 +08:00
三咲智子 Kevin Deng 5c0b8bbeb3
refactor: simplify code 2024-01-19 16:59:03 +08:00
Rizumu Ayaka 1e0070c208
feat(runtime-vapor): createIf (#95)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-01-19 16:38:41 +08:00
Rizumu Ayaka 2cce436aaf
feat(runtime-vapor): lifecycle beforeUpdate and updated hooks (#89) 2024-01-13 03:25:57 +08:00
Rizumu Ayaka 26fee414ff
feat: compound expression for `v-on` (#60) 2024-01-08 14:07:49 +08:00
Rizumu Ayaka fb4d9a1443
feat: renderWatch / renderEffect (#86)
* refactor: use baseWatch to drive watchAPI

* feat: basic implementation of renderWatch and effectId

* chore: remove effect id

* chore: export and simplify types

* test: render watch

* chore: add todo comment

* fix: sync code changes according to the review in PR #82

* fix: enum values conflict

* chore: rename

* feat: change watchEffect to renderEffect in compiler-vapor

* chore: update

---------

Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2024-01-07 01:31:01 +08:00
Rizumu Ayaka dce55475a5
style: fix lint errors in vapor 2023-12-29 22:05:33 +08:00
三咲智子 Kevin Deng 22ed5a7782
chore: remove unused 2023-12-26 23:48:45 +08:00
三咲智子 Kevin Deng efc32b716f
refactor(runtime-vapor): remove public instance 2023-12-25 02:51:51 +08:00
GaoNeng 3d4bc018d7
feat(runtime-vapor): onErrorCaptured (#71)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-25 02:44:01 +08:00
Kaine d3a86cf144
fix(runtime-vapor): fix v-show value (#70) 2023-12-23 15:23:34 +08:00
Rizumu Ayaka 5b3027f0a9
feat(runtime-vapor): `watchEffect`/`watch` and `onEffectCleanup` (#69) 2023-12-23 15:17:18 +08:00
GaoNeng 9d3abcf24b
feat(runtime-vapor): mounted & unmounted hook (#46)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-15 01:47:56 +08:00
三咲智子 Kevin Deng 9dda97e736
refactor(runtime-vapor): clean up 2023-12-15 01:30:34 +08:00
白雾三语 6eaf4b651b
fix(runtime-vapor): `unmountComponent` (#63)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-15 01:23:17 +08:00
白雾三语 9e031275d7
fix: throw error without `script` block (#61)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-13 15:16:33 +08:00
白雾三语 5e681b5945
feat(compiler-vapor): functional custom directive support updated hooks (#58)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-13 15:01:07 +08:00
三咲智子 Kevin Deng 19fb55febf
fix(runtime-vapor): custom directive instance
closes #50
2023-12-12 15:39:00 +08:00
三咲智子 Kevin Deng 3ba1315e72
refactor(runtime-vapor): remove argument generic 2023-12-11 16:24:07 +08:00
ubugeeei 12250a85b9
feat(runtime-vapor): component props (#40) 2023-12-10 01:33:18 +08:00
三咲智子 Kevin Deng 5f90f8bef0
feat: v-show 2023-12-08 17:37:21 +08:00
三咲智子 Kevin Deng 71bc13575f
types(runtime-vapor): add modifiers & argument type 2023-12-07 10:46:34 +08:00
三咲智子 Kevin Deng 41a7079493
refactor: extract Data 2023-12-07 01:55:00 +08:00
白雾三语 0cca23f574
feat(compiler-vapor): support custom directives argument & modifiers (#34)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-07 01:41:17 +08:00
三咲智子 Kevin Deng 9e9703d7b6
feat(runtime-vapor): render component 2023-12-06 18:49:41 +08:00
三咲智子 Kevin Deng 25f90b2a97
chore: fix lint 2023-12-04 16:45:26 +08:00
三咲智子 Kevin Deng f3e80d7706
feat: support more directive hook 2023-12-04 16:08:15 +08:00
三咲智子 Kevin Deng db151e1b43
feat: custom directlve
closes #19
2023-12-03 18:36:54 +08:00
白雾三语 28caf8f566
feat: v-on modifiers support native options and keyboards (#28)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-12-03 03:49:44 +08:00
三咲智子 Kevin Deng 281d468020
style: format 2023-12-01 01:28:16 +08:00
ubugeeei 503615a31e
feat(compiler): v-on event modifier (#8) 2023-11-30 05:11:59 +08:00
ubugeeei 61f339ce7d
feat: vapor component base (#5)
Co-authored-by: 三咲智子 Kevin Deng <sxzz@sxzz.moe>
2023-11-30 02:11:21 +08:00
三咲智子 Kevin Deng b3fdccec6f
refactor: remove InsertPosition 2023-11-29 21:20:05 +08:00
三咲智子 Kevin Deng 4549e28665
fix: playground 2023-11-29 02:38:01 +08:00
三咲智子 Kevin Deng ab9a2d28d7
feat: build vapor & add @vue/vapor package 2023-11-29 01:26:01 +08:00
三咲智子 Kevin Deng 8b075796d7
feat: scheduler 2023-11-27 23:48:36 +08:00
三咲智子 Kevin Deng f9c607dbe4
chore: add todo comment for prepend append 2023-11-27 06:34:37 +08:00