1. 程式人生 > >Omi v1.0震撼釋出

Omi v1.0震撼釋出

寫在前面

Omi框架經過幾十個版本的迭代,越來越簡便易用和強大。
經過週末的連續通宵加班加點,Omi v1.0版本終於問世。雖然版本遵循小步快跑、頻繁迭代,但是Omi團隊成員都有著剋制之心,處女座佔了半壁江山,所以Omi的API除了增量的API,其他的歷史API沒有任何變化。

廢話不多說,這就為大家介紹到目前1.0版本為止,關於Omi,你必須知道的點點滴滴。

強大的Store系統

先說說Store系統是幹什麼的!

當我們元件之間,擁有共享的資料的時候,經常需要進行元件通訊。在Omi框架裡,元件通訊非常方便:

  • 通過在元件上宣告 data-* 傳遞給子節點
  • 通過在元件上宣告 data 傳遞給子節點 (支援複雜資料型別的對映)
  • 宣告 group-data 把數組裡的data傳給一堆元件傳遞(支援複雜資料型別的對映)
  • 完全面向物件,可以非常容易地拿到物件的例項,之後可以設定例項屬性和呼叫例項的方法。比如(標記name、標記omi-id)

當然你也可以使用event emitter / pubsub庫在元件之間通訊,比如這個只有 200b 的超小庫mitt 。但是需要注意mitt相容到IE9+,Omi相容IE8。

雖然元件通訊非常方便,但是各種資料傳遞、元件例項互操作或者迴圈依賴,讓程式碼非常難看且難以維護。所以:

Omi.Store是為了讓 元件通訊幾乎絕跡 。雖然:

Redux 的作者 Dan Abramov 說過:Flux 架構就像眼鏡:您自會知道什麼時候需要它。

但是,我不會告訴你

Omi Store 系統就像眼鏡:您自會知道什麼時候需要它。

因為,Omi Store使用足夠簡便,對架構入侵性極極極小(3個極代表比極小還要小),讓資料、資料邏輯和UI展現徹底分離,所以我的觀點是:

如果使用Omi,請使用Omi.Store架構。

比如連這個Todo例子都能使用Omi.Store架構。如果連複雜度都達不到Todo,那麼Omi其實都沒有必要使用,你可能只需要一個模板引擎便可。

關於Store詳細的用法,後續再寫文章闡述。

簡易的外掛體系

omi外掛主要是賦予dom能力,並且能和instance關聯。如果主要是結構行元件,就寫成Omi元件,和外掛也沒有太大關係。所以omi的外掛不會有太多。

完善的腳手架

你可以安裝omi-cli,用來初始化專案腳手架。

$ npm install omi-cli -g       //安裝cli
$ omi init your_project_name   //初始化專案
$ cd your_project_name         //轉到專案目錄
$ npm run dev                  //開發
$ npm run dist                 //部署釋出

專案腳手架基於 Gulp + Webpack + Babel + BrowserSync ,並且支援sass生成元件區域性CSS

支援HTML、JS、CSS/Sass檔案分離的目錄方式,也支援HTML、JS、CSS 全都寫在JS裡的方式,兩種方式可以同時出現在專案裡,按需選擇。

其他

  • 大量的示範例子(md2site、qq-nearby實戰、各種example)
  • 雙版本支援,(omi.js和omi.lite.js)

其中omi.lite.js是不包含 mustache.js模板引擎的omi.js。Omi團隊認為:

1.隨著ES的發展,模板字串和ES語法強大到可以不使用模板引擎(僅限於all in js的程式碼目錄組織方式)
2.讓開發者重寫 Omi.template 去使用任意模板引擎

  • 良好的相容性,支援IE8(請自行引用es5-shim或es5-sham)

本來沒有支援IE8的打算,後來發現babel加兩個外掛便可以支援IE8:

query: {
    presets: 'es2015',
    plugins : [
        "transform-es3-property-literals",
        "transform-es3-member-expression-literals"
    ]
}
  • 輕量迅速的DOM Diff 和 HTML Parser
  • 更智慧的事件繫結,如:
class Hello extends Omi.Component {

    handleClick(evt){
      alert(evt.target.innerHTML)
    }
  
    render() {
      return  `
      <div>
        <h1 onclick="handleClick">Hello ,{{name}}!</h1>
      </div>
        `
    }
}

你可以傳遞任意引數:

class Hello extends Omi.Component {

    handleClick(str, num){
    
    }
  
    render() {
      return  `
      <div>
        <h1 onclick="handleClick('test', 1)">Hello ,{{name}}!</h1>
      </div>
        `
    }
}

強大的Omi團隊

  • 來自AlloyTeam、Mars Holding、騰訊、TalkingCoder、阿里、微軟的優秀的工程師會協商規劃好Omi發展路線,跟進優秀的思想和模式
  • 來自AlloyTeam的工程師會跟進Omi使用者的任何問題

相關

  • 如果想使用Omi框架或者開發完善Omi框架,可以訪問 Omi使用文件
  • 如果你想獲得更佳的閱讀體驗,可以訪問 Docs Website
  • 如果你懶得搭建專案腳手架,可以試試 omi-cli
  • 如果你有Omi相關的問題可以 New issue
  • 如果想更加方便的交流關於Omi的一切可以加入QQ的Omi交流群(256426170)

相關推薦

Omi v1.0震撼釋出

寫在前面 Omi框架經過幾十個版本的迭代,越來越簡便易用和強大。 經過週末的連續通宵加班加點,Omi v1.0版本終於問世。雖然版本遵循小步快跑、頻繁迭代,但是Omi團隊成員都有著剋制之心,處女座佔了半壁江山,所以Omi的API除了增量的API,其他的歷史API沒有任何變化。 廢話不多說,這就為大家介紹到

TIMO 後臺管理系統 v1.0 正式釋出

專案介紹 TIMO後臺管理系統,基於SpringBoot2.0 + jpa + thymeleaf + shiro 開發的通用型後臺管理,採用分模組的方式便於開發和維護,目前已開發的功能:許可權管理、部門管理、字典管理、日誌記錄、檔案上傳、程式碼生成功能,為快速開發後臺管理提供解決方案! v1.0正式

Omi 5.0.5 釋出,騰訊開源的下一代 Web 框架

Omi 5.0.5 已釋出,更新內容如下: [Fix] fix host [Add] supports defineElement for amd env, it's the same as define Omi 是騰訊開源的下一代 Web 框架,去萬物糟粕,合精

JPress v1.0.1 釋出,修復細節問題,提高使用者體驗

   JPress 一個類似 WordPress 的產品,使用Java開發。       特點 模板 模板安裝 模板解除安裝 線上編輯(刪除模板、修改模板、上傳模板) 完善的開發文件 極致的開發體驗 使用者

AFW簡訊防火牆 v1.0 beta 釋出

簡介:AFW是一個用於在Android手機上攔截垃圾簡訊的應用程式。支援簡訊號碼全部及部分匹配;支援系統預製黑名單和使用者自定義黑名單。執行在Android 2.1以上版本。 功能特性: 多種攔截方式:可以匹配完整的簡訊號碼,也可以匹配簡訊號碼的一部分(字首) 預製的黑名單列表:常見的自定義黑名單往

pinpoint agent 外掛自動生成工具v1.0.5釋出

        Pinpoint是一款不錯的開源APM產品,官方提供了非常多的通用外掛,同時也可以根據pinpoint外掛原理實現自定義類的監控外掛,但是實現門檻比較高。     為了降低pinpoint外掛

YYGraft v1.0.1 釋出,基於 HTM5 的JS線上塗鴉工具

YYGraft v1.0.1 已釋出。 更新內容 新增橡皮擦功能 新增為塗鴉新增背景圖片功能 新增畫筆顏色選擇功能 新增初始化繪圖環境的功能 新增圖片儲存功能 線上預覽 關於YYGraft YYGraft 是一個採用 html5 canvas 實現的一個js線上塗鴉工具,  開發初衷是用來嵌入 

跨平臺自動構建工具v1.0.2 釋出

XMake是一個跨平臺自動構建工具,支援在各種主流平臺上構建專案,類似cmake、automake、premake,但是更加的方便易用,工程描述語法更簡潔直觀,支援平臺更多,並且集建立、配置、編譯、打包、安裝、解除安裝、運行於一體。線上文件 線上原始碼 支援特性

Midway v1.0 正式釋出 - 面向未來的全棧開發方案

   雙旦已過,新年將至,midwayJs 向大家獻上賀禮。 之前我們向社群開放了我們的治理工具,也就是 Pandora.js 工具包,用於整個 Node.js 應用的監控和治理,我們承諾這不是結束,只是開源的開始。 隨著內部全棧應用數的越來越多,以及阿里業務不斷提升的複雜度

Syncd v1.0.1 釋出,一款 Go 語言開發的自動化部署工具

   syncd是一款開源的程式碼部署工具,它具有簡單、高效、易用等特點,可以提高團隊的工作效率。 專案地址(Github)   專案地址(Gitee)   下載地址 v1.0.1   使用文件 特性: Go語言開

OpenglRipper V1.0.1 釋出

1.修復某些情況下UV 匯出錯誤情況2.新增匯出所有模型,和自動識別VFormat,TexFormat3.優化匯出功能,多執行緒匯出,防止介面卡死。4.修復了一處匯出路徑異常問題。最新版使用教程:https://blog.csdn.net/yy405145590/articl

騰訊 Omi 5.0 釋出 - Web 前端 MVVM 王者歸來

寫在前面 騰訊 Omi 框架正式釋出 5.0,依然專注於 View,但是對 MVVM 架構更加友好的整合,徹底分離檢視與業務邏輯的架構。 你可以通過 omi-cli 快速體驗 MVVM: $ npm i omi-cli -g $ omi init-mv

騰訊 Omi 5.0 釋出 - Web 前端 MVVM 王者歸來,mappingjs 強力加持

寫在前面 騰訊 Omi 框架正式釋出 5.0,依然專注於 View,但是對 MVVM 架構更加友好的整合,徹底分離檢視與業務邏輯的架構。 你可以通過 omi-cli 快速體驗 MVVM: $ npm i omi-cli -g $ omi init-mvvm my-app $

國產通訊框架 smart-socket v1.4.0-rc 釋出:重新定義自己

smart-socket經歷一年多的開源發展,受到了不少Java開發者的關注與支援。並在社群的助推下成為了一款小巧、穩健又具備超高效能的AIO通訊框架,最新穩定版為v1.3.22。而該版本將成為smart-socket 1.3.X的首個TLS(長期支援)版本,各位朋友可放心使用。 <!--&nb

將迎來v1.0正式版,JPress最後一個RC版本釋出

   JPress最後一個RC版本釋出了,到今天為止,每週一個版本的速度,JPress連續釋出了10個RC版本。下週沒什麼問題反饋的話,jpress v1.0-rc.10 直接修改為正式版釋出。   JPress經過了10個RC版本的迭代,已經支援瞭如下功能: 模

ESP32增強型透傳韌體 JFirmware v1.0(ESP32) 正式釋出!(不帶藍芽功能)

ESP32 增強型透傳韌體 JFirmware v1.0(ESP32) (暫不帶藍芽功能) 簡介: 繼上次布的ESP8266透傳韌體後,立即又開發了ESP32的版本,但暫時還沒研究好藍芽功能。純個人開發,諸多不善請大佬們多多指教。         本韌體是一款基於ESP

Kubernetes v1.11.7-beta.0v1.11.6 釋出

   Kubernetes v1.11.7-beta.0 和 v1.11.6 釋出了。更新內容集中在新增新特性和修復 bug 上。 Scheduler only activates unschedulable pods if node's scheduling relate

swagger-ui-layer v1.0.0 正式版釋出

swagger-ui-layer 簡介 swagger-ui-layer 是一個基於swagger的前端UI實現,目的是為了讓介面文件更直觀,更漂亮,更好用。經過一年多的時間,6個非正式版的釋出,終於

2018最後一個版本,JPress v1.0.3 優化釋出

   JPress 一個類似 WordPress 的產品,使用Java開發。 特點 模板 模板安裝 模板解除安裝 線上編輯(刪除模板、修改模板、上傳模板) 完善的開發文件 極致的開發體驗 使用者 獨立登入和註冊入口 獨立的使用者中心(投稿、文章管理和評論管

Guns 旗艦版 v1.0 釋出:升級 bootstrap 4.0,更簡潔的管理系統

   大家好,這將是Guns2018年最後一個版,前端整體框架大升級,後端資料庫設計更規範合理,是這一年的嘔心瀝血之作!!兩年了,開源不易,感謝大家支援! Guns旗艦版v1.0 更新說明: 前端頁面風格和架構煥然一新,全面升級bootstrap 4.0,您現在擁有兩種介面