Weex基於Vue2.0開發框架模板搭建
前言
最近有一些人反饋說在面試過程中常常被問到weex相關的知識,也側面反映的weex的發展還是很可觀的,可是目前weex的開發者大多數是中小型公司或者個人,大公司屈指可數,揪其原因可能是基於weex的開發正確的姿勢大家並沒有找到,而且市面上的好多輪子還是.we字尾的,眾所周知,weex和vue一直在努力的進行生態互通,而且weex實現web標準化是早晚的問題,今天和大家分享一下weex基於vue2.0的開發框架模板~
工作原理
先簡單熟悉一下weex的工作原理,這裡引用一下weex官網上的一直圖片,詳細資訊見官網
開發環境搭建
weex 開發環境搭建
android 、iOS 開發環境
框架說明
基於vue2.0搭建
像前面說的那樣weex和vue一直在努力的進行生態互通,而且weex實現web標準化是早晚的問題,所以也建議開發者不要在用.we做字尾來開發了
native端多頁模式、web端採用單頁模式
- 單頁形態對於原生可能體驗不夠好,所以android與ios端採用多頁模式
- web端沿用spa模式標準
整合三端(android、ios、h5平臺)
關於android、ios、h5平臺的整合與打包問題,在專案中都以解決~
整合eslint程式碼檢查
程式碼檢查是必要的操作,為了能夠擁有vue開發的體驗,將eslint整合進來~
提供開源元件庫OSC
weex-frame提供了,開源元件庫OSC,降低開發者入門門檻~
注:
由於weexpack暫不支援vue問題,打包相關後續會整合進來~
框架介紹
package.json依賴
"dependencies": {
"vue": "^2.1.8",
"vue-router": "^2.1.1",
"vuex": "^2.1.1",
"vuex-router-sync": "^4.0.1",
"weex-vue-render": "^0.1.4"
},
"devDependencies": {
"babel-core" : "^6.20.0",
"babel-eslint": "^7.1.1",
"babel-loader": "^6.2.9",
"babel-preset-es2015": "^6.18.0",
"css-loader": "^0.26.1",
"eslint": "^3.15.0",
"eslint-config-standard": "^6.2.1",
"eslint-loader": "^1.6.1",
"eslint-plugin-html": "^2.0.1",
"eslint-plugin-promise": "^3.4.2",
"eslint-plugin-standard": "^2.0.1",
"postcss-cssnext": "^2.9.0",
"serve": "^1.4.0",
"vue-loader": "^10.0.2",
"vue-template-compiler": "^2.1.8",
"webpack": "^1.14.0",
"weex-devtool": "^0.2.64",
"weex-loader": "^0.4.1",
"weex-vue-loader": "^0.2.5"
}
打包配置
1、 遍歷.vue檔案字尾,生成相應的entry.js檔案
function getEntryFileData (entryPath, vueFilePath) {
const relativePath = path.relative(path.join(entryPath, '../'), vueFilePath);
return 'let App = require("${relativePath}")
// 全域性註冊元件
Vue.component('root', require("components/root"))
App.el = '#root'
new Vue(App)'
}
...
2、通過weex-loader打包生成native jsbundle
3、 通過weex-vue-loader打包生成web jsbundle
...
const webConfig = getBaseConfig()
webConfig.entry = {
entry: path.resolve('./src/entry.js')
}
webConfig.output = {
path: 'dist/web',
filename: '[name].js'
}
webConfig.module.loaders[1].loaders.push('vue')
const weexConfig = getBaseConfig()
weexConfig.output.filename = 'weex/[name].js'
weexConfig.module.loaders[1].loaders.push('weex')
專案結構
weex-frame
├── android (android專案)
│
├── ios (ios專案程式碼)
│
├── src (weex模組)
│ ├── api (api模組)
│ ├── components(元件模組)
│ ├── constants(常量配置)
│ ├── utils (工具模組)
│ └── views(檢視模組)
│
└── dist (build輸出模組)
├── weex (native使用jsbundle)
└── web(web使用jsbundle)
元件庫介紹
osc-navbar
三端導航條
osc-navpage
三端導航頁,適配iOS頂部20px問題
程式碼示例:
<osc-navpage
:title="title"
leftItemSrc="https://gitlab.com/toonteam/weex/raw/ce656f79084ed9db357f8abd76c6e6c82dc5a28d/src/views/person-info/imgs/back.png"
rightItemSrc="http://gtms02.alicdn.com/tps/i2/TB1ED7iMpXXXXXEXXXXWA_BHXXX-48-48.png"
@naviBarLeftItemClick="onBack"
@naviBarRightItemClick="onReload">
<web class='web' ref='webview' :src='url' @pagestart='start' @pagefinish='finish'></web>
</osc-navpage>
介面根view,適配iOS頂部20px問題
程式碼示例:
<osc-root>
<text>OsMartian Root</text>
</osc-root>
osc-tabbar
底部tabbar
程式碼示例:
<osc-tabbar :tabItems="tabItems" @tabBarOnClick="tabBarOnClick"></osc-tabbar>
osc-tabitem
底部tabbaritem元素
專案啟動
- git clone [email protected]:osmartian/weex-frame.git
- cd weex-frame
- npm install
- 執行 ./start
android 啟動
- 開啟andorid studio
- File -> New -> Import Project -> weex-frame/android -> 啟動
或
npm run dev:android
iOS 啟動
- cd ios
- pod install (未安裝pod,請先安裝)
- open WeexFrame.xcworkspace
h5 啟動方式
專案示例
h5 端示例
android 端示例
iOS 端示例
結語
能看的出來上方的三端示例表現還是很一致的,本篇博文也是想給大家提供一個輪子,也歡迎大家多多提意見,共同促進weex生態成熟~
框架專案地址:
相關推薦
Weex基於Vue2.0開發框架模板搭建
前言 最近有一些人反饋說在面試過程中常常被問到weex相關的知識,也側面反映的weex的發展還是很可觀的,可是目前weex的開發者大多數是中小型公司或者個人,大公司屈指可數,揪其原因可能是基於weex的開發正確的姿勢大家並沒有找到,而且市面上的好多輪子
微信公眾號 基於PHP 拼團活動開發一 模板搭建
已測試號為例;使用者發起拼團活動(為團長),回覆給他帶有活動id與其openid的二維碼圖片,轉發給他人,已關注的掃碼之後儲存其openid,未關注的在關注之後儲存openid(防止重複參與)(團員),然後自動回覆團員自己活動資訊的二維碼。 1.微信公眾號後臺配置好 伺服器
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之六 || API專案整體搭建 6.1 倉儲模式
程式碼已上傳Github+Gitee,文末有地址 書接上文:前幾回文章中,我們花了三天的時間簡單瞭解了下介面文件Swagger框架,已經完全解放了我們的以前的Word說明文件,並且可以線上進行除錯,而且當專案開始之中,我們可以定義一些空的介面,或者可以返回假資料,這樣真正達到了前後端不等待的缺陷,還是
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之二 || 後端專案搭建
WHY 至於為什麼要搭建.Net Core 平臺,這個網上的解釋以及鋪天蓋地,想了想,還是感覺重要的一點,跨平臺,嗯!沒錯,而且比.Net 更容易搭建,速度也更快,所有的包均有Nuget提供,不再像以前的單純引入元件,比如是這樣的:
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之七 || API專案整體搭建 6.2 輕量級ORM
更新 1、在使用的時候,特別是 update 的時候,如果不知道哪裡有問題,記得檢視資料庫 和 實體類 的欄位,是否大小寫一致,比如 name 和 Name 要學會使用資料庫監控分析器 程式碼已上傳Github+Gitee,文末有地址 書接上文:《從壹開始前後端分離【 .NET
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之八 || API專案整體搭建 6.3 非同步泛型倉儲+依賴注入初探
程式碼已上傳Github+Gitee,文末有地址 番外:在上文中,也是遇到了大家見仁見智的評論和反對,嗯~說實話,積極性稍微受到了一丟丟的打擊,不過還好,還是有很多很多很多人的贊同的,所以會一直堅持下去,歡迎提出各種建議,問題,意見等,我這個系列呢,只是一個拋磚引玉的文章,大家可以自定義的去擴充套件學習
core學習歷程三 從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之六 || API專案整體搭建 6.1 倉儲模式 從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之七 || API專案整體搭建 6.2 輕量級ORM
繼續學習 “老張的哲學”博主的系列教程 從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之六 || API專案整體搭建 6.1 倉儲模式 教程這章只是簡單地過了一遍倉儲層、業務邏輯層、應用層,沒遇到大問題 ==============================
Vue2.0結合iView快速搭建後臺管理網站模板(附github原始碼地址)
一、專案背景: 嘗試使用vue結合其UI框架iView快速搭建網站後臺模板(在前後端分離的大背景下,傳統的js、jquery已經不在是搭建前端的首選,尤其是mvvm模式下衍生出來的react.js、angular.js和vue.js等框架是的前端開發更加高效簡潔,效能提高的
【APACHE MINA2.0開發之一】搭建APACHE MINA框架並實現SERVER與CLIENT端的簡單訊息傳遞!
Hibernate系列學習階段到此結束了,那麼緊接著進入Apache Mina的開發學習,很多童鞋在微薄和QQ中疑問Himi為什麼突然脫離遊戲開發了,嘿嘿,其實可能更多的童鞋已經看出來了,Himi在偏向伺服器Server端開發了,Hibernate、MySQL等都是為了Server端Mina開發而做的
基於Vue2.0的UI框架整理
開發十年,就只剩下這套架構體系了! >>>
基於vue2.0的一個豆瓣電影App
即將 tle count webp bad string random current strong 1、搭建項目框架 使用vue-cli 沒安裝的需要先安裝 npm intall -g vue-cli 使用vue-cli生成項目框架 vue init webpack-s
vue2.0+element+node+webpack搭建的一個簡單的後臺管理界面
mage strong 解決 orm userinfo html中 down product param 1.檢查本地是否安裝node:node -v 如果沒有安裝從node官網上下載相應的node,安裝成功
vue2.0-下載安裝vue,搭建第一個項目
下一步 安裝 msi guid class 名稱 pac IE 管理 Vue.js 是什麽 Vue (讀音 /vju?/,類似於 view) 是一套用於構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關註視圖層,不僅
基於Vue2.0的音樂播放器——歌手模塊(拿不到數據)
分享圖片 header sig highlight func conf java tdi pro 來這裏的都可能在看,慕課網vue2.0 的音樂播放器的相關頁面,如果使用視頻介紹的方法,相當於現在來說是獲取數據回報如下的錯誤: {code: -500001, ts: 15
基於vue2.0實現仿百度前端分頁效果(二)
前言 上篇文章中,已經使用vue實現前端分頁效果,這篇文章我們單獨將分頁抽離出來實現一個分頁元件 先看實現效果圖 程式碼實現 按照慣例,我們在凍手實現的時候還是先想一想vue實現元件的思路 1、需要提前設定哪些引數需要暴露出來給父元件傳遞 <Paging
vue2.0 前端框架
som nbsp 新版 常用 .... 數組 設計理念 lean tin 在正式開始先復習一下js基礎。因為vue最通終也要操作這些元素,vue和以前學的js並不掛勾,他和傳統的jquert 設計理念相反 ## js 數據類型 1 基本類型 number string
vue2.0 前端框架
在正式開始先複習一下js基礎。因為vue最通終也要操作這些元素,vue和以前學的js並不掛勾,他和傳統的jquert 設計理念相反 ## js 資料型別 1 基本型別 number string boolean n
基於ROS1.0的stdr simulation搭建多移動機器人(multiple robots)模擬系統
多移動機器人的概念就不敘述了,直接講如何正確的在ROS系統下構建基於stdr simulation和gazebo平臺下的模擬實驗。 1 前提準備 安裝好如下幾個基本的包: stdr simulation amcl mo
從壹開始前後端分離【 .NET Core2.0 +Vue2.0 】框架之十二 || 三種跨域方式比較,DTOs(資料傳輸物件)初探
更新反饋 1、博友@童鞋說到了,Nginx反向代理實現跨域,因為我目前還沒有使用到,給忽略了,這次記錄下,為下次補充。 程式碼已上傳Github+Gitee,文末有地址 今天忙著給小夥伴們提出的問題解答,時間上沒把握好,都快下班了,趕緊釋出:書說上文《從壹開始前
【音樂App】—— Vue2.0開發移動端音樂WebApp專案爬坑(二)
前言:上一篇總結了專案概況、專案準備、頁面骨架搭建、推薦頁面開發,這一篇重點梳理歌手頁面開發、歌手詳情頁。專案github地址:https://github.com/66Web/ljq_vue_music,歡迎Star。 一、歌手頁面開發--singer