昨天有先學習vuetify的佈局,今天就可以來實作了
先看一下之前設計的UI,其實蠻簡單的就是上方一個app-bar,下方一個content包住,再看要渲染什麼東西即可

拿昨天的範例程式改一下大約會長這樣
<!-- App.vue -->
<v-app>
  <v-app-bar app>
    <!-- -->
  </v-app-bar>
  <!-- 根据应用组件来调整你的内容 -->
  <v-main>
    <!-- 给应用提供合适的间距 -->
    <v-container fluid>
      <!-- 如果使用 vue-router -->
      <router-view></router-view>
    </v-container>
  </v-main>
</v-app>
但是這樣只有上下2個框框而已,v-app-bar 裡還需要加上Title、搜尋框
v-app-bar 本身就有二個子組件可以用
專門為 v-toolbar 和 v-app-bar 創建的 icon按鈕組件,通常是用來控制開關工具欄,可以自訂義icon跟功能。
修改過的 v-toolbar-title 組件,用於配合 shrink-on-scroll 属性使用。 差別在於,當螢幕太小時,v-toolbar-title 會被截斷,這個组件使用了絕對定位使內容保持在畫面內。
先把上面的範例code加到App.vue的template裡, 目前的子組件一樣是預設的 HelloWorld.vue
<template>
  <v-app>
    <v-app-bar app>
      <!-- -->
    </v-app-bar>
    <!-- 根据应用组件来调整你的内容 -->
    <v-main>
      <!-- 给应用提供合适的间距 -->
      <v-container fluid>
        <!-- 如果使用 vue-router -->
        <div id="app">
          <img src="./assets/logo.png">
          <router-view/>
        </div>
      </v-container>
    </v-main>
  </v-app>
</template>
在Terminal 輸入 npm run dev,就會把程式運行在本地,預設是8080 port
在停止運行之前,只要程式碼有修改,他都會自動重新run一次,並把網頁更新到最新版
目前執行畫面,可以看到上方多了一個 app-bar

<template>
  <v-app>
    <v-app-bar app color="cyan darken-2">
      <v-container class="py-0 fill-height">
        <v-app-bar-title class="title-color">
          藝文資訊整合平台
        </v-app-bar-title>
        <v-spacer></v-spacer>
        <v-responsive max-width="260">
          <v-text-field
            label="搜尋"
            solo
            dense
            flat
            hide-details
            rounded
            append-outer-icon="search"
          >
          </v-text-field>
        </v-responsive>
      </v-container>
    </v-app-bar>
		...
  </v-app>
</template>
<style>
...
.title_color{
  color: white;
}
</style>
目前畫面,可以看到 icon的地方好像怪怪的~
怎麼會是跑出文字呢?

我翻了一下Vuetify文檔發現,icon 預設使用 Material Design icons,另外也支援 Material Icons 、Font Awesome 4 Icons、Font Awesome 5 Icons...等,不管使用哪一個版本都需要手動安裝 & 引用才行。
那我平常是使用 google 的 Material Icons 官方文檔
如果是一般的靜態網頁,可以引用CDN即可
<link href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet">
也可以使用 yarn 或 npm 在本地安裝
$ yarn add material-design-icons-iconfont -D
// OR
$ npm install material-design-icons-iconfont -D
安裝好後要到 /src/plugins/vuetify.js 引用
// src/plugins/vuetify.js
import Vue from 'vue';
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css';
import 'material-design-icons-iconfont/dist/material-design-icons.css'; // 确保您正在使用 css-l
Vue.use(Vuetify);
const opts = {
  icons: {
    iconfont: 'md',
  },
};
export default new Vuetify(opts);

今天先這樣!
明天來把分頁加上去