VUE.JS和NODE.JS構建一個簡易的前後端分離靜態博客系統(四)

ClassicHeader

<template>
  <header class="classic">
    <div class="left">
        <slot name="left"></slot>
    </div>
    <div class="right">
        <slot name="right"></slot>
    </div>
  </header>
</template>

<script>
export default {
  name: 'ClassicHeader',
}
</script>

<style scoped>
  header.classic {
    height: 45px;
    
    display: flex;
    align-items: center;
    justify-content: space-between;

    background-color: #f9f9fb;
    border-bottom: 1px solid #dcdfe6;  
  }

  header.classic .left {
    margin-left: 10px;
    font-size: 14px;
    font-weight: 400;
    color: #606266;
    user-select: none;
  }

  header.classic .right {
    margin-right: 10px;

    display: flex;
  }
</style>

這是一個名爲 "ClassicHeader" 的 Vue 單文件組件 (SFC)。這個組件包括三個部分:模板(template)、腳本(script)和樣式(style)。以下是組件的主要功能:

  1. 模板(template)部分:

    • 一個帶有 "classic" 類名的 header 元素。
    • header 元素包含兩個子 div,分別具有 "left" 和 "right" 類名。
    • 在這兩個子 div 中,分別插入名爲 "left" 和 "right" 的插槽(slot),以便在使用組件時可以在父組件中傳入自定義內容。
  2. 腳本(script)部分:

    • 定義並導出一個名爲 "ClassicHeader" 的 Vue 組件。
  3. 樣式(style)部分:

    • 使用 scoped 屬性,這樣定義的樣式僅應用於當前組件,不會影響其他組件。
    • header.classic 元素設置高度、佈局、背景顏色和底部邊框樣式。
    • header.classic .left 設置左邊距、字體大小、字體權重、顏色和禁止用戶選擇樣式。
    • header.classic .right 設置右邊距和佈局樣式。

簡言之,ClassicHeader 是一個 Vue 組件,它定義了一個具有兩個插槽的頁眉,可用於在父組件中傳入自定義的左側和右側內容。組件的樣式主要針對頁眉本身以及左右兩側內容的排列和外觀。

SubTitle

<template>
  <div class="subTitle">
    <span><slot></slot></span>
  </div>
</template>

<script>
export default {
  name: 'SubTitle',
}
</script>

<style scoped>
  .subTitle {
    /* background-color: yellowgreen; */
    padding-bottom: 10px;
  }

  .subTitle span {
    font-family: 'Courier New', Courier, monospace;
    user-select: none;

    letter-spacing: 1px;
  }
</style>

這是一個名爲 "SubTitle" 的 Vue 單文件組件 (SFC)。這個組件包括三個部分:模板(template)、腳本(script)和樣式(style)。以下是組件的主要功能:

  1. 模板(template)部分:

    • 一個帶有 "subTitle" 類名的 div 元素。
    • 在這個 div 元素中,插入一個默認插槽(slot),以便在使用組件時可以在父組件中傳入自定義內容。
  2. 腳本(script)部分:

    • 定義並導出一個名爲 "SubTitle" 的 Vue 組件。
  3. 樣式(style)部分:

    • 使用 scoped 屬性,這樣定義的樣式僅應用於當前組件,不會影響其他組件。
    • .subTitle 元素設置內部底部填充。
    • .subTitle span 設置字體、禁止用戶選擇樣式和字母間距樣式。

簡言之,SubTitle 是一個 Vue 組件,它定義了一個帶有默認插槽的副標題,可以在父組件中傳入自定義內容。組件的樣式主要針對副標題本身的外觀和間距。

vue-my-cnblog\public\index.html

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
    <script src="./tinymce/tinymce.min.js"></script>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

這是一個簡單的 HTML 文件,主要用於承載 Vue 項目的根組件。以下是 HTML 文件的主要內容:

  1. 文檔類型、語言、字符集、瀏覽器兼容性和視口設置的元信息。

  2. 網頁的 title 使用 <%= htmlWebpackPlugin.options.title %>,這是一個模板語法,用於在編譯時從 webpack 的 HtmlWebpackPlugin 配置中讀取 title

  3. 一個指向 favicon.ico 的圖標鏈接。

  4. 引入一個外部腳本,這是 TinyMCE 編輯器的主要 JavaScript 文件,這個文件會在瀏覽器中加載 TinyMCE 編輯器。

  5. noscript 標籤內有一個警告消息,當用戶的瀏覽器禁用 JavaScript 時,會顯示這個消息,提醒用戶需要啓用 JavaScript 以獲得完整的功能體驗。

  6. 一個帶有 ID "app" 的 div 元素,Vue 項目的根組件將在這裏掛載。

  7. 註釋提到,生成的構建文件將自動注入到此 HTML 文件中。

這個 HTML 文件爲 Vue 項目提供了基本的骨架結構,並通過引入 TinyMCE 編輯器腳本使其可在項目中使用。在編譯時,構建好的 Vue 應用程序將掛載到帶有 ID "app" 的 div 元素中。

<script src="./tinymce/tinymce.min.js"></script> 是在 HTML 文件中引入 TinyMCE 編輯器的方式。TinyMCE 是一個流行的 WYSIWYG(所見即所得)富文本編輯器,它允許用戶在瀏覽器中創建和編輯 HTML 內容。

將 TinyMCE 編輯器腳本添加到 HTML 文件的原因有以下幾點:

  1. 依賴加載:將 TinyMCE 編輯器作爲一個外部依賴加載到項目中,確保在 Vue 應用程序中需要使用它時,TinyMCE 編輯器已經在瀏覽器中加載並可用。

  2. 全局可用:將 TinyMCE 編輯器作爲外部腳本引入,使其在整個 Vue 項目中都可以訪問和使用。這意味着在項目的任何地方都可以方便地使用 TinyMCE 編輯器創建和編輯富文本內容。

  3. 性能優化:將 TinyMCE 編輯器單獨引入而不是將其打包到 Vue 項目的主 JS 文件中,有助於提高項目的構建速度和加載性能。這是因爲瀏覽器會單獨緩存這個文件,而不是將它與整個 Vue 應用程序一起加載。

總之,在 HTML 文件中引入 TinyMCE 編輯器腳本是爲了確保其在整個 Vue 項目中都可用,便於在需要時使用它創建和編輯富文本內容,同時還能優化項目的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章