Commit Graph

3421 Commits

Author SHA1 Message Date
Evan You
af9e6999e1 feat: support casting plain element to component via is="vue:xxx"
In Vue 3's custom elements interop, we no longer process `is` usage on
known native elements as component casting. (ref:
https://v3.vuejs.org/guide/migration/custom-elements-interop.html)
This introduced the need for `v-is`. However, since it is a directive,
its value is considered a JavaScript expression. This makes it awkward
to use (e.g. `v-is="'foo'"`) when majority of casting is non-dynamic,
and also hinders static analysis when casting to built-in Vue
components, e.g. transition-group.

This commit adds the ability to cast a native element to a Vue component
by simply adding a `vue:` prefix:

```html
<button is="vue:my-button"></button>
<ul is="vue:transition-group" tag="ul"></ul>
```
2021-04-12 13:08:07 -04:00
Evan You
422b13e798 wip: testing compiler deprecation warnings 2021-04-12 09:09:00 -04:00
edison
7db8c9c19a
chore: use isArray to keep the code consistency 2021-04-12 18:31:11 +08:00
Evan You
24bab94a72 wip: staticStyle and staticClass 2021-04-11 22:21:10 -04:00
Evan You
62bfdae043 wip: Vue.util compat 2021-04-11 16:53:43 -04:00
Evan You
c55f3ed0e8 wip: fix render fn compat detection 2021-04-11 11:15:40 -04:00
Evan You
a2f441dc0e wip: refactor compat check utils 2021-04-09 23:51:50 -04:00
Evan You
7a25cbb7a7 wip: fix compat utils usage 2021-04-09 23:21:54 -04:00
Evan You
183f9b0013 wip: component v-model compat 2021-04-09 23:10:29 -04:00
Evan You
f05d6dfd98 wip: render function compat 2021-04-09 18:56:31 -04:00
Evan You
457a56e331 wip: compat for legacy functional component 2021-04-09 15:14:14 -04:00
Evan You
d71c488540 chore: fix dts 2021-04-08 17:15:02 -04:00
Evan You
3db29eb773 wip: support per-component compatConfig 2021-04-08 17:11:05 -04:00
Evan You
f8e2361d83 wip: make tests pass again 2021-04-08 16:33:53 -04:00
Evan You
18cf63ff05 wip: async component compat 2021-04-08 16:11:28 -04:00
Evan You
d7957a7440 wip: tweak warning dedupe logic 2021-04-08 11:09:40 -04:00
Evan You
d4af747a50 wip: $attrs class/style warning 2021-04-08 10:41:25 -04:00
Evan You
c9a93a5c4c wip: $scopedSlots compat 2021-04-08 10:21:14 -04:00
Evan You
960e9deaed wip: vm.$listeners compat 2021-04-08 10:06:12 -04:00
Evan You
c1e5cfe7d6 wip: attr coersion compat 2021-04-07 17:42:03 -04:00
Evan You
cf6bcdf895 wip: transition group root compat 2021-04-07 16:19:25 -04:00
Evan You
1c2c77eb9f wip: apply compat enabled flags to currently implemented features 2021-04-07 16:19:25 -04:00
Evan You
208bef5d97 wip: watch array compat 2021-04-07 16:19:25 -04:00
Evan You
69fafb437a chore: log runtime build file size 2021-04-07 16:19:25 -04:00
Evan You
e2fc84c773 wip: compat configuration 2021-04-07 16:19:24 -04:00
Evan You
068d93b9e5 wip: keyCode compat 2021-04-07 16:19:24 -04:00
Evan You
2784d6615d wip: $children compat 2021-04-07 16:19:24 -04:00
Evan You
db09805688 wip: instance event emitter api compat 2021-04-07 16:19:24 -04:00
Evan You
9828ef0845 wip: transition class compat 2021-04-07 16:19:24 -04:00
Evan You
926e12862b wip: fix root data option compat 2021-04-07 16:19:24 -04:00
Evan You
3d810eb422 wip: basic compat test 2021-04-07 16:19:24 -04:00
Evan You
47b765d63a wip: custom directive compat 2021-04-07 16:19:24 -04:00
Evan You
d619a770a8 wip: props default this compat 2021-04-07 16:19:24 -04:00
Evan You
65cc649559 wip: beforeDestroy & destroyed compat 2021-04-07 16:19:24 -04:00
Evan You
960e0943f7 wip: config.ignoredElements compat 2021-04-07 16:19:24 -04:00
Evan You
d0da0028f2 wip: data option compat 2021-04-07 16:19:24 -04:00
Evan You
53b8127a9c wip: progress 2021-04-07 16:19:24 -04:00
Evan You
40e3dd28e1 wip: restructure compat code + global api alignment 2021-04-07 16:19:24 -04:00
Evan You
e2d6ff845b wip: root mount api compat 2021-04-07 16:19:24 -04:00
Evan You
24850a99c6 wip: initial compat build setup 2021-04-07 16:19:24 -04:00
Evan You
870f2a7ba3 fix(watch): this.$watch should support watching keypath 2021-04-07 16:19:04 -04:00
Eduardo San Martin Morote
0f2d8f3244
test: typo in spy (#3556) 2021-04-07 14:19:12 +02:00
Evan You
4fe4de0a49 fix(runtime-core): ensure declare prop keys are always present
fix #3288
2021-04-01 20:25:12 -04:00
Evan You
f0cf14bcc5 release: v3.0.11 2021-04-01 19:52:45 -04:00
Evan You
c1cd42e627 fix(runtime-core): fix v-on object kebab-case event emit matching
fix #3527
2021-04-01 19:47:58 -04:00
HcySunYang
995d76bd12
fix(runtime-core): fix render function + optimized slot edge case (#3523)
fix #2893

Manually rendering the optimized slots should allow subsequent updates to exit the optimization mode correctly
2021-04-01 19:28:58 -04:00
Cédric Exbrayat
c90fb945f4
refactor(sfc-playground): modes declaration (#3522) 2021-04-01 18:37:50 -04:00
Evan You
7f7dcc9f7d fix(compiler-sfc): fix wrong scopeId for nested <script setup> components 2021-04-01 18:11:04 -04:00
edison
8c57b9131d
chore(types): use NormalizedStyle for consistency (#2590) 2021-04-01 11:29:24 +08:00
Evan You
4dc457dae5 workflow(sfc-playground): make it work in safari and ff 2021-03-31 15:23:01 -04:00