|
1 | 1 | ---
|
2 | 2 | title: Vue.js 1.0.0 Released
|
3 |
| -date: 2015-10-31 00:00:00 |
| 3 | +date: 2015-10-26 10:00:00 |
4 | 4 | ---
|
5 | 5 |
|
6 |
| -After ~300 commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of [Vue.js 1.0.0 Evangelion](https://github.com/vuejs/vue/releases/tag/1.0.0)! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community. |
| 6 | +After 300+ commits, 8 alphas, 4 betas and 2 release candidates, today I am very proud to announce the release of [Vue.js 1.0.0 Evangelion](https://github.com/vuejs/vue/releases/tag/1.0.0)! Many thanks to all those who participated in the API re-design process - it would not have been possible without all the input from the community. |
7 | 7 |
|
8 | 8 | <!-- more -->
|
9 | 9 |
|
@@ -51,52 +51,12 @@ There are also exciting things going on outside of Vue.js core - [vue-loader](ht
|
51 | 51 |
|
52 | 52 | Combined with [vue-router](https://github.com/vuejs/vue-router), Vue.js is now more than a library - it provides a solid foundation for building complex SPAs.
|
53 | 53 |
|
54 |
| -### Upgrade Guide |
| 54 | +### What's Next? |
55 | 55 |
|
56 |
| -#### General Tips |
| 56 | +As what 1.0.0 usually suggests, the core API will stay stable for the foreseeable future and the library is ready for production use. Future development will focus on: |
57 | 57 |
|
58 |
| -- If you are familiar with 0.12. or upgrading an active app from 0.12: |
| 58 | +1. Improving `vue-router` and make it production ready. |
59 | 59 |
|
60 |
| - 1. Read through the [notable changes](#Notable_Changes_from_0-12) below to get a general idea of the relatively big changes. |
| 60 | +2. Streamlining the developer experience, e.g. a better devtool and a CLI for scaffolding Vue.js projects and components. |
61 | 61 |
|
62 |
| - 2. Read through the [revised official guide](http://vuejs.org/guide/). It is highly recommended to do this before you upgrade. |
63 |
| - |
64 |
| - 3. Upgrade to the [1.0.0 migration build](https://github.com/vuejs/vue/releases/tag/1.0.0-migration) first. The migration build is fully 0.12.16 compatible and also includes all the new features in 1.0.0. It also raises deprecation warnings for any usage of deprecated API. |
65 |
| - |
66 |
| - 4. Consult the [full changelog](https://github.com/vuejs/vue/releases/tag/1.0.0) and the [updated API Reference](http://vuejs.org/api/) as you work through the deprecation warnings. Once your app no longer raises any warnings using the migration build, it should work properly in 1.0.0. |
67 |
| - |
68 |
| -- If you are relatively new to Vue.js: |
69 |
| - |
70 |
| - - Just go read the [official guide](http://vuejs.org/guide/)! |
71 |
| - |
72 |
| -### Notable Changes from 0.12 |
73 |
| - |
74 |
| -- **Data Binding Syntax Change** |
75 |
| - |
76 |
| - This is the biggest change: directive syntax has been overhauled. No more multiple clauses; arguments are now placed inside the attribute name. The attribute value should now always be a single JavaScript expression followed by filters. |
77 |
| - |
78 |
| - - [Cheatsheet and Details](https://github.com/vuejs/vue/issues/1325) |
79 |
| - |
80 |
| -- **Strict Mode by Default** |
81 |
| - |
82 |
| - In the past, asset resolution (components, directives, filters...) has implicit fallback: if an asset is not found in the current component, Vue.js will recursively look for it in its parent, its parent's parent... and so on. This allows you to, say, define a component in the root instance and use it in any child component. It is convenient, however we've found that in large projects it results to implicit coupling between a child component and its ancestors. It also hurts maintainability - when you are looking at a child component in isolation, it's hard to identify where an asset comes from because it could've been provided by **any** ancestor up the component chain. |
83 |
| - |
84 |
| - Therefore, in 1.0 all asset resolution is "strict": an asset should either be defined on the current component, or defined as a true global asset (using one of the global `Vue.xxx` asset registration methods). |
85 |
| - |
86 |
| -- **Bye v-repeat, Hi v-for** |
87 |
| - |
88 |
| - `v-repeat` has been replaced by `v-for`, which is **much** faster, but comes with a few differences: |
89 |
| - |
90 |
| - 1. A alias is required now: so you should always do `v-for="item in items"`, no more `v-for="items"`. |
91 |
| - |
92 |
| - 2. The scoping is different when you use `v-for` on a component - it no longer automatically injects the data and meta properties like `$index` and `$key` into the component - you now need to explicitly pass them down using props. This makes the child component explicit about where its data comes from. |
93 |
| - |
94 |
| - - [Details](https://github.com/vuejs/vue/issues/1200) |
95 |
| - - [Docs](http://vuejs.org/guide/list.html) |
96 |
| - |
97 |
| -- **<slot> is the new <content>** |
98 |
| - |
99 |
| - The Web Components spec drafters are ditching the `<content>` API in favor of `<slot>`. Since Vue.js components are modeled after Web Components, and since the `<slot>` API does make things more explicit than relying on CSS selectors, we are moving to the `<slot>` API too. |
100 |
| - |
101 |
| - - [Reference](https://hacks.mozilla.org/2015/06/the-state-of-web-components/) |
102 |
| - - [Docs](http://vuejs.org/guide/components.html#Content_Distribution_with_Slots) |
| 62 | +3. Providing more learning resources such as tutorials and examples. |
0 commit comments