Commit Graph

262 Commits

Author SHA1 Message Date
三咲智子 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
三咲智子 Kevin Deng 71cf732d6d
feat: append & prepend multiple elements 2023-11-27 06:22:10 +08:00
三咲智子 Kevin Deng 6ff8b1bf0d
feat: use Array for Fragment, instead of native DocumentFragment 2023-11-27 05:29:38 +08:00
三咲智子 Kevin Deng 07373d41fd
feat: append multiple node 2023-11-27 05:16:21 +08:00
三咲智子 Kevin Deng 12187fbc85
feat: dynamic root nodes 2023-11-26 03:53:47 +08:00
三咲智子 Kevin Deng 9602cd2011
feat: add api for document.createTextNode 2023-11-26 03:12:02 +08:00
三咲智子 Kevin Deng ac686033aa
feat: fragment 2023-11-26 02:13:59 +08:00
三咲智子 Kevin Deng 74b4328337
feat: v-html 2023-11-24 14:44:57 +08:00
三咲智子 Kevin Deng cd768d262f
refactor: tidy 2023-11-23 23:43:19 +08:00
三咲智子 Kevin Deng 1d2f66e111
feat: binding 2023-11-23 23:42:16 +08:00
三咲智子 Kevin Deng 2a0a3dd059
feat: basic render 2023-11-17 03:03:50 +08:00
三咲智子 Kevin Deng ef9628ce7f
feat(runtime-vapor): template 2023-11-17 03:01:53 +08:00
三咲智子 Kevin Deng 135f5eb8e7
feat: init runtime vapor 2023-11-17 03:01:53 +08:00