1. 程式人生 > >Weex基於Vue2.0開發框架模板搭建

Weex基於Vue2.0開發框架模板搭建

Weex基於Vue2.0開發框架搭建

前言

最近有一些人反饋說在面試過程中常常被問到weex相關的知識,也側面反映的weex的發展還是很可觀的,可是目前weex的開發者大多數是中小型公司或者個人,大公司屈指可數,揪其原因可能是基於weex的開發正確的姿勢大家並沒有找到,而且市面上的好多輪子還是.we字尾的,眾所周知,weex和vue一直在努力的進行生態互通,而且weex實現web標準化是早晚的問題,今天和大家分享一下weex基於vue2.0的開發框架模板~

工作原理

先簡單熟悉一下weex的工作原理,這裡引用一下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元素

專案啟動

  1. git clone [email protected]:osmartian/weex-frame.git
  2. cd weex-frame
  3. npm install
  4. 執行 ./start

android 啟動

  1. 開啟andorid studio
  2. File -> New -> Import Project -> weex-frame/android -> 啟動

npm run dev:android

iOS 啟動

  1. cd ios
  2. pod install (未安裝pod,請先安裝)
  3. open WeexFrame.xcworkspace

h5 啟動方式

專案示例

h5 端示例

h5我的頁面

h5發起頁面

android 端示例

android首頁

android我的頁面

android發起頁面

iOS 端示例

iOS首頁

iOS我的頁面

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