前往
大廳
主題

【程式入門】Vue.js 從零開始:基礎渲染與網頁框架應用

小櫻純真可愛 | 2024-02-22 18:22:41 | 巴幣 210 | 人氣 89

接續上一篇文教了如何在電腦上安裝Vue的環境

如果還沒學過且對Vue有興趣的可以先去看上篇

這篇主要是從核心功能開始教起

第一步先將資料夾點開找到src資料夾進入後點擊App.vue

App.vue在 Vue.js 專案中扮演著核心角色。它是一個單文件組件,定義了應用程式的根組件。

在典型的 Vue.js 專案中,App.vue 包含了應用程式的整體結構,通常分為以下三個部分:

模板部分

定義了應用程式的佈局和結構,包括全局元件(如導覽列、側邊欄、頁腳等)和動態元件(如路由視圖等)。

樣式部分

包含了應用程式的全局樣式和佈局,用於定義頁面元素的外觀和樣式。

腳本部分

包含了 Vue.js 組件的邏輯代碼,例如資料處理、事件監聽等。這部分代碼用於初始化組件的狀態,定義方法和生命週期鉤子等。

在這邊我會先從最簡單的教起


打開app.vue之後會看到這樣的程式碼

都刪除掉,並且在code區輸入

<template>
  <h1>helloworld</h1>
</template>

在 HTML 中,大多數情況下,元素需要以 <開頭>和結尾,例如<h1><p> 等標籤。

這些標籤是HTML 元素的起始和結束標記,它們告訴瀏覽器如何解釋和渲染頁面內容。

然而,也有一些元素是自我封閉的,即它們不需要顯式的結束標記,例如<img><input> 等。

這些元素只需要一個起始標記,例如<img src="ex.jpg">

也就是說

<template> 是宣告模板起點

<h1>helloworld</h1>  <h1>是宣告文字為h1大小,顯示文字為helloworld,</h1>為結束範圍

</template> 是宣告模板終點

後續解釋會跳過,應該也是很好理解

輸入完上述code之後使用CTRL+S進行保存動作,接著切換到網頁會看到網頁的變化


此時有些寫過網頁的人就會發現,為什麼網頁沒有按F5刷新卻還是自動刷新了呢

因為 npm run dev 的時候是使用內置的開發伺服器來啟動項目

這個開發伺服器會監聽項目文件的變化,並在文件發生變化時自動重新加載頁面,以便能夠實時看到

修改後的效果,而不必手動重新整理頁面。

在 Vue CLI 中,默認的開發伺服器是基於 webpack-dev-server 構建的,

它提供了熱模塊替換(HotModule Replacement)等功能,可以大大提高開發效率。

聲明式渲染與命令式渲染


命令式:

例如,請程式做什麼事,去處理什麼function,叫DOM設定一個值

在命令式渲染中,需要明確地告訴程序每一步該做什麼

通常情況下,需要直接操作 DOM 元素,手動添加、刪除或修改元素以達到所需的效果。

命令式渲染通常會導致代碼更複雜、難以維護和理解,因為需要管理所有 DOM 操作的細節

傳統的 jQuery 是一個命令式渲染的例子,因為需要通過直接調用 DOM 方法來操作頁面元素。

聲明式:

例如,跟框架說我要這個"結果",中間怎麼發生就是框架自行處理

聲明式對開發者來說會相對的輕鬆一點

通常情況下,會將組件的狀態與模板綁定,當狀態發生變化時,

框架會自動更新模板以反映這些變化。

聲明式渲染提供了一種更簡潔、更易於理解和維護的方式來構建 UI,只需要關注組件的狀態以及

如何根據狀態來呈現 UI,而不需要擔心如何進行具體的 DOM 操作。

聲明式渲染應用


在宣告資料狀態時常使用 ref 與 reactive 兩種

它們告訴 Vue 哪些資料應該是響應式的。在使用它們時,你只需要描述資料的狀態,

而不需要描述資料如何被更新或者如何和視圖進行綁定。


在原有的框架上新增了JS與聲明式渲染

可以看到這邊是用 const 而不是 let message

const 多做一層封裝的動作將 message 封裝成物件,讓他有不可變性

因為 ref 的資料不會直接對他修改,他不需要變成可以改變的變數

這個動作可以讓代碼有不可變性與提高可靠性與可維護性

在模板上加入{{message}}後網頁會呈現什麼畫面呢


沒錯是一個 h1 大小的 helloworld 與正常大小的 helloworld2

為什麼不是兩個 helloworld 呢 因為在const message的下一行是

message.value,這會將數據寫上 helloworld2,

也就是說之後需要修改只需要改 message.value 即可


reactive 是 Vue 提供的一個函數,用於創建響應式對象。

它使得對象的屬性變化可以被 Vue 追蹤,從而能夠在數據變化時自動更新相關的視圖。

reactive 呈現出來的樣子是怎樣呢


沒錯,其實跟ref呈現的樣子是一樣的

這時候有人就會問網頁看起來很亂怎麼辦

這時候就要用上<br>這個標籤,這個標籤是跳行作用


跳行之後呈現的畫面如下


在新手階段使用reactive會覺得比ref來說更為複雜些

但是只要熟悉之後其實兩者用的速度都是差不多的

課程筆記與課後補充:


首先,打開了App.vue 檔案,以一個簡單的例子開始,將 App.vue 中的所有內容刪除,了解HTML模板架構,展示了一個簡單的 "Hello World"。

在解釋模板部分的時候,介紹了 HTML 標籤的使用方法,以及 <template> 標籤的作用。

還提到了在 Vue 專案中,使用 npm run dev 命令啟動開發伺服器,使得在修改代碼後網頁可以自動刷新。

接著,講解了聲明式渲染與命令式渲染的區別,以及聲明式渲染的應用。

完整程式碼



<script setup> #宣告JS

ref與reactive差異


數據類型不同:


ref 主要用於創建單個基本類型數據的響應式引用,例如數字、字符串等。

reactive 則用於創建包含多個屬性的複雜對象的響應式引用,可以是對象、數組等複雜數據類型。

引用訪問方式不同:


使用ref 創建的響應式引用,需要通過 .value 屬性來訪問和修改其值。

使用reactive 創建的響應式引用,則可以直接訪問和修改其屬性,無需額外的 .value

用途不同:


ref 適用於創建基本類型的響應式數據,特別適用於在模板中直接使用。

reactive 適用於創建複雜對象的響應式數據,可以用於管理組件的狀態、數據模型等。

本次學習檔案github

送禮物贊助創作者 !
0
留言

創作回應

更多創作