基於雲開發開發 Web 應用(二):界面 UI 開發

来源:https://www.cnblogs.com/cloudkit/archive/2020/02/03/12249190.html
-Advertisement-
Play Games

在這一篇文章,我們可以開始使用 Vuetify 來實現 Web 應用的構建。這一篇內容沒有那麼多,更多討論的是 UI 和 UX 介紹。 ...


工作量分析

在我們進行這部分開發的時候,接下來我們需要進行相應的功能安排和分類。

簡單看來,我需要開發 3 個頁面:

  1. 首頁:首頁負責用戶預設訪問。
  2. 列表頁:列表頁面則是在搜索過程中,如果有多個結果,則進入到列表頁面。如果有單個結果,則應該進入到詳情頁面。
  3. 結果頁:結果頁負責顯示命令的具體的翻譯結果。

根據實際的工作拆分組件的化,我需要有一個 Layout 組件來負責整體的頁面的環境渲染。但是,考慮到組件的復用,於是決定將首頁的 Title 進行優化,使首頁和詳情頁保持一致。

在新版的佈局情況下,我就可以將頂部的的 title 和底部的 Link 放在最外側的組件中。

創建 Router & Page

在思考情況後,接下來我們來創建 Router 和 Page。首先,刪除 views 頁面的 About.vue(因為這個頁面我們不需要)。然後創建 List.vue 和 Result.vue ,用作後續的開發準備。

創建完成後,修改 router/index.js 中的 routes 部分

const routes = [
  {
    path: '/',
    name: 'home',
    component: () => import(/* webpackChunkName: "home" */ '../views/Home.vue')
  },
  {
    path: '/list/:cmd',
    name: 'list',
    component: () => import(/* webpackChunkName: "list" */ '../views/List.vue')
  },
  {
    path: '/cmd/:cmd',
    name: 'command',
    component: () => import(/* webpackChunkName: "cmd" */ '../views/Result.vue')
  }
]

完成定義後,我們就可以通過形如 https://tldr.linux.cn/list/lshttps://tldr.linux.cn/cmd/ls 這樣的方式來訪問具體的命令了。

定義頁面

接下來需要編寫 Home、List 和 Result 這三個頁面。由於這三個頁面在內容方面沒有太多的可以借鑒的點,所以我們更多關註於使用頁面中 Script 的部分。

<template>
  <div class="home">
        <v-text-field
        v-model="cmd"
        @keydown="onKeyDown"
        autofocus
        ></v-text-field>        
  </div>
</template>

<script>
export default {
  name: 'home',
  data:function(){
    return {
      cmd:""
    }
  },
  methods:{
    onKeyDown: function(e)  {
     
    }
  },
  computed:{
    isLoaded:function(){
        return !this.loaded
    }
  }
}
</script>

上述代碼是我在三個頁面幾乎都會使用到的結構,刪除其中的一些無用的代碼以後,基本上在每個頁面都可以看到。這裡我重點說一下其中的一些比較特殊的用法。

首先第一個是在 v-text-field 上加入的 @keydown="onKeyDown" 這個綁定,這個綁定將會幫助實現用戶點擊回車以後,自動觸發事件。這樣在用戶輸入完命令後,按下回車就自動執行後續的操作,而不需要再移動滑鼠指針去點擊按鈕啟動搜索。

其次,在 v-text-field 上加入了 autofocus ,來實現進入頁面後,自動為輸入框加入focus,從而實現頁面載入完成後,用戶就可以輸入命令。

這樣的一些配置,可以讓用戶的體驗做到最好

除此之外,我還用到了 computed ,來做數據調整,確保我可以控制內容。

一些小的特性的點

使用骨架圖來優化體驗

由於我們的應用在列表頁面和詳情頁面存在數據的查詢時間,為了讓應用在載入的時候,不會因為載入中而退出頁面,我加入了 v-skeleton-loader 組件,這樣用戶在數據查詢的時候,看骨架圖來緩解用戶的焦慮。

在組件層面,我配置了 v-if 來做顯示的控制,並將 type 設置為 card,article,card,article 來實現多樣化的組件載入支持。

 <v-skeleton-loader
    v-if="isLoaded"
    type="card,article,card,article"
    min-height="800"
    ></v-skeleton-loader>

總結

在這一部分中,藉助 Vue 的 method 、onkeydown 和 computed 實現了頁面基本邏輯的構建。並藉助 Vuetify 的一些基礎組件來構建頁面。

在這一部分,我想告訴大家的更多是在 UI 的部分,我們在做的時候不僅僅需要考慮的是界面,更多還需要考慮在 UX 側體驗的優化,組件庫提供給我們的配置項目,可以優化產品體驗。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ServiceManager在init進程啟動之後啟動,用來管理系統中的service,那麼首先理解一下在init進程啟動之後啟動這句話類: 一般開機過程分為三個階段: 1. OS級別,由bootloader載入linux內核後,內核開始初始化,並載入built in的驅動程式,內核完成開機後,載入 ...
  • JavaScript: ECMAScript + BOM +DOM javascript 標識符命名規則: 1、只能是字母、數字、下劃線、$ 2、不能以數字開頭 3、不能使用關鍵字和保留字 省略var 聲明的變數是全局變數,但是不推薦這種方法 <!DOCTYPE html> <html lang=" ...
  • animation-name 動畫名稱,可以有多個值,用逗號隔開,表示綁定了多個動畫 animation-name屬性為動畫指定一個名稱 animation-name相容主流的瀏覽器,不過還是需要加首碼去相容 animation-name有兩個屬性值,分別是keyframename和none <!D ...
  • css3過渡 transition 相容性:IE10+ transition: none | all | property 預設為none all 表示所有屬性過渡 property 指定屬性值,如color opacity <!DOCTYPE html> <html lang="en"> <hea ...
  • css3 transform 相容性:IE10+ transform:rotate(deg) 正數為順時針,負數為逆時針 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <s ...
  • 前言 本文1454字,閱讀大約需要4分鐘。 總括: 本文以初學者的角度來闡述Javascript中柯里化的概念以及如何在工作中進行使用。 原文地址: "理解Javascript的柯里化" 知乎專欄: "前端進擊者" 博主博客地址: "Damonare的個人博客" 事親以敬,美過三牲。 正文 函數式編 ...
  • 1.下載--安裝 2.創建js文件 var http = require('http'); var url=require('url'); //引入url 模塊,幫助解析 var querystring=require('querystring');// 引入 querystring 庫,也是幫助解 ...
  • java script 內置對象 Date 日期對象 字元串對象 定義字元串的方法就是直接賦值 使用 String 對象的 toUpperCase() 方法來將字元串小寫字母轉換為大寫,反之 toLowerCase()方法將大寫轉為小寫 返回指定的字元 返回指定的字元串首次出現的位置 字元串分割sp ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...