|
| 1 | +# [3.0.0-alpha.4](https://github.com/vuejs/vue-next/compare/v3.0.0-alpha.3...v3.0.0-alpha.4) (2020-01-27) |
| 2 | + |
| 3 | + |
| 4 | +### Bug Fixes |
| 5 | + |
| 6 | +* **reactivity:** Array methods relying on identity should work with raw values ([aefb7d2](https://github.com/vuejs/vue-next/commit/aefb7d282ed716923ca1a288a63a83a94af87ebc)) |
| 7 | +* **runtime-core:** instance should not expose non-declared props ([2884831](https://github.com/vuejs/vue-next/commit/2884831065e16ccf5bd3ae1ee95116803ee3b18c)) |
| 8 | +* **runtime-dom:** should not access document in non-browser env ([48152bc](https://github.com/vuejs/vue-next/commit/48152bc88ea817ae23e2987dce99d64b426366c1)), closes [#657](https://github.com/vuejs/vue-next/issues/657) |
| 9 | +* **v-model/emit:** update:camelCase events should trigger kebab case equivalent ([2837ce8](https://github.com/vuejs/vue-next/commit/2837ce842856d51dfbb55e3fa4a36a352446fb54)), closes [#656](https://github.com/vuejs/vue-next/issues/656) |
| 10 | + |
| 11 | + |
| 12 | +### Code Refactoring |
| 13 | + |
| 14 | +* adjust `createApp` related API signatures ([c07751f](https://github.com/vuejs/vue-next/commit/c07751fd3605f301dc0f02fd2a48acc7ba7a0397)) |
| 15 | +* remove implicit reactive() call on renderContext ([6b10f0c](https://github.com/vuejs/vue-next/commit/6b10f0cd1da942c1d96746672b5f595df7d125b5)) |
| 16 | + |
| 17 | + |
| 18 | +### Performance Improvements |
| 19 | + |
| 20 | +* **ssr:** avoid unnecessary async overhead ([297282a](https://github.com/vuejs/vue-next/commit/297282a81259289bfed207d0c9393337aea70117)) |
| 21 | + |
| 22 | + |
| 23 | +### BREAKING CHANGES |
| 24 | + |
| 25 | +* object returned from `setup()` are no longer implicitly |
| 26 | +passed to `reactive()`. |
| 27 | + |
| 28 | + The renderContext is the object returned by `setup()` (or a new object |
| 29 | + if no setup() is present). Before this change, it was implicitly passed |
| 30 | + to `reactive()` for ref unwrapping. But this has the side effect of |
| 31 | + unnecessary deep reactive conversion on properties that should not be |
| 32 | + made reactive (e.g. computed return values and injected non-reactive |
| 33 | + objects), and can lead to performance issues. |
| 34 | + |
| 35 | + This change removes the `reactive()` call and instead performs a |
| 36 | + shallow ref unwrapping at the render proxy level. The breaking part is |
| 37 | + when the user returns an object with a plain property from `setup()`, |
| 38 | + e.g. `return { count: 0 }`, this property will no longer trigger |
| 39 | + updates when mutated by a in-template event handler. Instead, explicit |
| 40 | + refs are required. |
| 41 | + |
| 42 | + This also means that any objects not explicitly made reactive in |
| 43 | + `setup()` will remain non-reactive. This can be desirable when |
| 44 | + exposing heavy external stateful objects on `this`. |
| 45 | +* `createApp` API has been adjusted. |
| 46 | + |
| 47 | + - `createApp()` now accepts the root component, and optionally a props |
| 48 | + object to pass to the root component. |
| 49 | + - `app.mount()` now accepts a single argument (the root container) |
| 50 | + - `app.unmount()` no longer requires arguments. |
| 51 | + |
| 52 | + New behavior looks like the following: |
| 53 | + |
| 54 | + ``` js |
| 55 | + const app = createApp(RootComponent) |
| 56 | + app.mount('#app') |
| 57 | + app.unmount() |
| 58 | + ``` |
| 59 | + |
| 60 | + |
| 61 | + |
1 | 62 | # [3.0.0-alpha.3](https://github.com/vuejs/vue-next/compare/v3.0.0-alpha.2...v3.0.0-alpha.3) (2020-01-22)
|
2 | 63 |
|
3 | 64 |
|
|
0 commit comments