標籤:

Vue 2.0 可能有哪些激動人心的新特性?

@尤雨溪如題


專欄文章已發布:Announcing Vue.js 2.0 - Code, Design Things in between - 知乎專欄

另外勾股已經放了篇源碼分析文章: Code Review for Vue 2.0 Preview


沾 個光,Vue 2.0數據綁定實現一瞥,我也看了一些源碼,分享下心得。


這裡有一篇文章介紹了vue2.0。 Vue.js 2.0 快速上手:http://aissues.com/m/book.php?id=5B7922B9-04D6-4149-A611-81B3DFB5D88E


利益相關聲明:極客學院 Vue.js 課程簽約佈道師

Vue 2 正式發布已經半年了,即使當初有些新特性確實激動人心,現在也沒那麼令人激動了,所以這個問題之前沒答,現在時過境遷,也有點懶懶不想回答。

不過前兩天看到有人帶節奏,不打算給他任何評論增加他的人氣。雖然漠視是最好的反擊,但還是覺得有些不吐不快,那就答一下吧,。

---- 疑似廣告的分隔線 ----

Vue 2 發布的時候,我在極客學院的 Vue.js 課程還沒錄完,說老實話,內心是希望 Vue 2 晚些發布的,因為我的視頻課程是針對 1.0 版本的,沒有人希望學過時的東西,也沒有人希望辛苦準備了小半年的東西剛誕生就過時了,好氣啊,可還是要保持微笑。

---- 激動人心的新特性 ----

  1. 提出漸進式框架的概念 根據官方口徑,Vue 2 保留了 Vue 1 90% 的 API,Vue 2 的核心還是數據驅動和組件化,在此基礎上提出了「漸進式框架」的概念,給用戶提供了一個不太陡峭的學習曲線(所以 Vue 1 的課程還是值得學的哦)。
  2. 引入虛擬 DOM 移植自 snabbdom/snabbdom 的虛擬 DOM 使得初始渲染速度更快,同時使得 Server-Side Rendering — Vue.js 成為可能,支持流式 SSR 渲染,此外,由於 Vue 採用 Object.defineProperty 的方式實現響應式,並不需要使用 diff 進行虛擬 DOM 的比較後進行更新,效率更高。
  3. 增加對 JSX 的支持 這樣一來,Vue 實例的 DOM 渲染支持 template、JSX、render function(說明:Vue 中除了 directive 添加 v- 前綴以示與普通 HTML 屬性的區別之外,Vue 實例選項的屬性和方法並不添加 v 前綴,所以帶節奏的恐怕是把自己帶溝里了) 等不同的形式,把選擇權留給用戶(不明白這有啥可噴的,為支持原來的 React 用戶可以繼續使用熟悉的 JSX 語法,作者需要多花出不少精力來完成下面這個插件:vuejs/babel-plugin-transform-vue-jsx,Vue 生態相關的這些項目完全都是作者的創新、創作,與看書學習然後寫段快排代碼相比,高下立見)。
  4. 提供兩種不同構建 runtime-only 構建可用於手寫 render 的場景或通過 webpack 打包預先編譯的場景,減少代碼大小,優化頁面載入速度。
  5. 添加更為豐富的修飾符 表單添加了 trim 修飾符,事件添加 once、alt、ctrl、shift、meta、(滑鼠鍵的)left、right、middle(其中前五個是在下貢獻的),使得用戶可以用更少的聲明式代碼來實現這些基礎邏輯,將更多精力放在複雜業務邏輯的開發上。
  6. 移除不少可能埋雷的坑 根據 Migration from Vue 1.x — Vue.js 這篇教程,移除了不少 Vue 1 的特性,在繼續保持 API 簡潔風格的同時,避免一些過於「靈活」的寫法所帶來的隱患。

以上是個人對 Vue 2 新特性的管見,與同道中人分享。


沒想到竟然有人噴的。。。別雞凍,冷靜。。。

其實我也想弱弱地噴一下 Vue 2.x 越來越貼近 React,失去了 Vue 1.x 的那種小清新的風格。。。

不過大勢所趨,我也不得不上 Vue 2.x 了。。。

但我把對 Vue 1.x 的熱愛都寫在了這裡:https://github.com/kenberkeley/vue2-scaffold/


可以哦


推薦閱讀:

各位,來談談用element-ui遇到的bug吧?
應當如何入手Vue.js?
vue.js中集成ueditor?

TAG:Vuejs |