Vue+Ionic4,知虎偏行(二)創建及配置項目

創建Vue項目并運行

一般Ionic項目創建可以使用ionic-cli命令,即:

ionic start [options]

然而查看該命令說明和源碼是沒有Vue的項目模版的(見STARTER_TEMPLATES中的projectType)。

所以使用Vue來創建項目:

npm install -g @vue/cli
vue create envt-iot-overall

這是Vue很基礎的東西,安裝依賴并運行看下:

cd envt-iot-overall
npm i
npm run serve

此時可以看到項目能正常運行的,一般來說,應用都需要和路由打交道,所以添加下路由:

vue add router

安裝Ionic依賴

對Ionic集成,安裝ionic相關依賴(其中@ionic/core是組件部分,@ionic/vue是封裝成Vue方式調用的接口部分):

npm i @ionic/core @ionic/vue

安裝完成后,在main.js中添加配置:

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

再次運行,發現命令行會有告警提示:

warning in ./node_modules/@ionic/vue/dist/ionic-vue.esm.js
"export 'ICON_PATHS' was not found in 'ionicons/icons'

同時頁面也會報錯,顯示空白頁面,這是一個BUG(前期的版本是沒有這個BUG的),我們需要安裝ionicons,而且它對版本有要求,要在V4.5.10以下,所以執行:

npm i ionicons@4.5.9-1 -D

此時再次運行,沒有告警也沒有錯誤提示,但是還是空白頁面,調試頁面發現有這樣一個樣式:

html:not(.hydrated) body {
display: none;
}

我也不知道這是干嘛用的,改了再說:

html:not(.hydrated) body {
  display: block !important;
}

此時頁面看到有東西了,那我們嘗試下ionic的組件能不能用,在Home.vue頁面添加一個按鈕:

    <ion-button color="primary">測試</ion-button>

可以看到組件渲染出來了,為了和ionic的dom結構保持一致,把App.vue稍微改動一下,變為如下:

  <div id="app">
     <router-view/>
  </div>

注:本來想在<router-view/>外面包上一層<ion-app></ion-app>標簽,以和Ionic的保持一致(Ionic每個頁面實際會渲染在<ion-app>里面),但考慮到Vue必須要有一個單根節點的特性,所以這里不包,而是把<ion-app>作為Vue每個頁面的根節點。

我們再試試看事件能不能響應,頁面稍微改一下:

<ion-button color="primary" @click="showLoading">測試</ion-button>
……
  methods: {
    async showLoading() {
      const loading = await this.$ionic.loadingController.create({
        spinner: 'hide',
        duration: 2000,
        message: 'Please wait...',
        translucent: true,
        cssClass: 'custom-class custom-loading'
      });
      loading.present();
    }
  }

運行,發現能正常使用的。

改造路由

@ionic/vue將Vue Router與Ionic Router Outlet捆綁在一起,使Ionic組件可以直接訪問路由信息。作為回報,Ionic提供了令人賞心悅目的過渡效果。

為了支持Ionic的路由和使用其動畫和樣式,@ionic/vue里在vue-router的基礎上做了封裝,所以處理一下,打開router.js,修改一下(把Router替換為IonicVueRouter即可):

import Vue from 'vue'
import Home from './views/Home.vue'
// import Router from 'vue-router'
import { IonicVueRouter } from '@ionic/vue'

Vue.use(IonicVueRouter)

export default new IonicVueRouter({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      // route level code-splitting
      // this generates a separate chunk (about.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
    }
  ]
})

此時看到路由也是正常使用的。

修改模式

眾所周知,Ionic默認是使用android/md(Material Design)模式的,如果想使用ios模式,在<html>上添加mode="ios",即:

<html lang="en" mode="ios">

手機風格約束

index.html添加meta項:

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">

至此,基本項目配置就完成了,后續再談論更多細節。

補充:文章提到的BUG部分,在文章發表后一天內修復了(@ionic/vue^0.0.9)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374