第一個vue項目

項目目錄?

啟動vue項目

npm run serve

1.vue.config.js文件

(CLI通過vue-cli-serve啟動項目,解析配置配置文件vue-condig-js)

// vue.config.js

//引入path板塊,這是Node.js的一個內置模塊,用于處理文件路徑,這里引用它是為了方便后面設置路徑

const path = require('path');//便于處理文件路徑

//module.exports 用于導出模塊的內容

module.exports = {

? //用于自定義Webpack的配置

? configureWebpack: {

? ? //可以為路徑設置別名

? ? resolve: {

? ? ? alias: {

? ? ? ? // 設置 '@' 別名指向 'src' 文件夾,@/components 就表示 src/components

? ? ? ? '@': path.resolve(__dirname, 'src')

? ? ? }

? ? }

? },

? //用于配置開發服務器

? devServer: {

? ? host: '0.0.0.0', // 允許外部訪問

? ? port: 8080 // 設置開發服務器端口

? }

};

2.public/index.html

(項目入口文件,webpack會將打包的js文件注入到index-html文件內)

<!-- 項目入口的HTML文件,webpack會將打包后的javascript文件注入到這個html文件內 -->

<!DOCTYPE html>

<!-- html的根元素 -->

<html lang="">

? <!-- 包含文檔的元數據 -->

? <head>

? ? <!-- 設置字符編碼為utf-8支持多種語言 -->

? ? <meta charset="utf-8">

? ? <!-- 提示ie瀏覽器以最高版本的渲染引擎渲染頁面 -->

? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">

? ? <!-- 設置視圖,使得頁面在瀏覽器上面可以自適應頁面 -->

? ? <meta name="viewport" content="width=device-width,initial-scale=1.0">

? ? <!-- 目的是為了設置網頁圖標,綠色的那個vue,這里的BASE_URL是webpack的環境變量,指向公共資源favicon-ico -->

? ? <link rel="icon" href="<%= BASE_URL %>favicon.ico">

? ? <!-- 通過webpack的htmlWebpackPlugin插件動態注入標題 -->

? ? <title><%= htmlWebpackPlugin.options.title %></title>

? </head>

? <!-- 包含頁面的主題內容 -->

? <body>

? ? <!-- 如果當前瀏覽器禁用js,就會顯示如下部分 -->

? ? <noscript>

? ? ? <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>

? ? </noscript>

? ? <!-- 用于掛載vue應用的容器,將app的內容渲染到此處 -->

? ? <div id="app"></div>

? ? <!-- built files will be auto injected -->

? ? ?<!-- 打包后的Javascrip文件會自動注入此處 -->

? </body>

</html>

3.src/App-vue?

(檔 Vue 應用掛載到 index.html 中的 <div id="app"></div> 元素上的時候就會開始啟動vue項目,其中App.vue是根組件)

<!-- 這是vue應用的主組件,其他的組件都會嵌套到這個組件內,檔主html文件運行之后,-->

?<!-- app掛載到html上面之后,就會開始啟動vue項目,從這里開始 -->

?<!-- template部分用于定義組件的html(即頁面上顯示的內容) -->

<template>

? <!-- app這是一個容器元素,整個組件的內容都包裹在這個div內部,掛載在main.js的文件中的app上 -->

? <div id="app">

? ? <!-- 這是vue的插值語法用于動態綁定數據 -->

? ? <h1>{{ message }}</h1>

? ? <!-- 這是一個自定義組件HelloWorld的用法 -->

? ? <HelloWorld msg="Welcome to Your Vue.js App"/>

? ? <!-- 是vue router提供的內容,用于顯示當前路由對于的組件內容,內部放置了兩個導航連接 -->

? ? <router-view>

? ? ? <router-link to="/">Home</router-link>

? ? ? <router-link to="/About">About</router-link>

? ? </router-view>

? </div>

</template>

<!-- 部分用于定義組件的邏輯,包括數據、方法、生命周期等。 -->

<script>

// 從 ./components/HelloWorld.vue 文件中導入 HelloWorld 組件,這樣就可以在當前組件中使用HelloWorld

import HelloWorld from './components/HelloWorld.vue'

// 定義并導出當前組件的配置對象

export default {

? name: 'App',

? data() {

? ? return {

? ? ? message: "Hello, Vue!app通過message這里是我添加的vue部分" // 定義響應式數據

? ? };

? },

? // 注冊子組件,使其可以在模板中使用

? components: {

? ? HelloWorld

? }

}

</script>

<!-- 部分用于定義組件的CSS樣式 -->

<style>

#app {

? /* 設置字體 */

? font-family: Avenir, Helvetica, Arial, sans-serif;

? /* 用于優化字體的抗鋸齒效果 */

? -webkit-font-smoothing: antialiased;

? -moz-osx-font-smoothing: grayscale;

? /* 將文本居中對齊 */

? text-align: center;

? /* 設置文本顏色。 */

? color: #47812b;

? /* 設置頂部外邊距 */

? margin-top: 60px;

}

</style>

4.src/router/index.js?

// 路由配置文件

// 需要提前安裝vue-router 終端輸入命令 npm install vue-router

// 導入必要的模塊,其中createRouter和createWebHistory是從vue-router包中導入的,

// 其中createRouter用于創建一個路由實例

// createWebHistory是一種路由模式,用于實現基于瀏覽器歷史記錄的路由導航

import { createRouter, createWebHistory } from 'vue-router';

// 從../views/Home.vue 文件中導入 Home 組件

import Home from '../views/Home.vue';

// 包含了路由規則的數組,每個路由規則定義了路徑path和對應的組件component

const routes = [

? {

? ? path: '/',

? ? name: 'Home',

? ? component: Home

? }

];

// 用于創建一個路由實例,接受一個配置對象

const router = createRouter({

? // 指定路由的模式。在這里,使用了 createWebHistory(),表示使用瀏覽器的歷史記錄模式

? history: createWebHistory(),

? // 提供路由規則數組,定義了路徑和組件的映射關系

? routes

});

// 導出路由實例

export default router;

5.頁面級組件Home.vue和About.vue

(Vue Router 會根據當前 URL 加載對應的組件,并將其渲染到 <router-view> 中)

5-1? Home.vue

<template>

? ? <div>

? ? ? <h1>這里是Home頁面級別Page</h1>

? ? </div>

? </template>

? <!-- 定義組件邏輯 -->

? <script>

// export default這是 ES6 的模塊導出語法,用于將當前組件定義導出,使其可以在其他地方被導入和使用。

// 在 Vue 中,每個 .vue 文件都是一個獨立的模塊

? ?export default {

? ? name: 'Home' ? ? ? ? //定義組件名為Home

? };

? </script>

5-2? About.vue

?<template>

? ? <div>

? ? ? <h1>About Page</h1>

? ? </div>

? </template>

? <script>

? export default {

? ? name: 'About'

? };

? </script>

6. src/assets/

(用于放置一些靜態資源)

7.components

(用于放置一些可復用的子組件)?

8.views

(用于放置一些頁面級組件,通常是路由的直接目標)

特性src/componentssrc/views
用途可復用的子組件頁面級組件
依賴性獨立,不依賴于頁面邏輯依賴于路由配置
嵌套關系可以嵌套在其他組件或頁面中組合多個子組件構建頁面
路由管理不直接參與路由管理直接作為路由目標被渲染
示例按鈕、輸入框、導航欄等首頁、關于頁、詳情頁等

other解釋

?什么是,en或zh-CN

<html lang="en"> <!-- 頁面內容為英語 -->
<html lang="zh-CN"> <!-- 頁面內容為簡體中文 -->

文檔的元數據

關于文檔的信息,用于描述HTML文檔的屬性,但不會直接顯示在網頁上。它們通常放在HTML的<head>標簽中,常見的元數據包括:

  • <meta charset="utf-8">:指定字符編碼,確保網頁支持多種語言。

  • <meta name="viewport" content="width=device-width, initial-scale=1.0">:設置網頁在移動設備上的顯示方式,確保自適應屏幕。

  • <meta name="description" content="網頁描述">:提供網頁的簡短描述,用于搜索引擎結果頁面(SERP)。

  • <title>:設置網頁標題,顯示在瀏覽器標簽頁上。

  • <link>:用于引入外部資源,如CSS文件、圖標等。

  • <script>:用于引入JavaScript文件。

這些元數據幫助瀏覽器、搜索引擎或其他工具更好地理解和處理網頁內容。

BASE_URL指向公共資源

<div id="app"></div>?掛載應用解釋

html文件

<div id="app">
? <h1>{{ message }}</h1>
</div>

在Vue實例中:

data() {
? return {
? ? message: "Hello, Vue!"
? };
}

最終,瀏覽器會顯示:

<div id="app">
? <h1>Hello, Vue!</h1>
</div>

在 Webpack 的構建流程中,dist 文件夾(或你指定的其他輸出目錄)是專門用于存放構建后的文件的地方。這些文件是經過 Webpack 打包、優化后的最終產物,可以直接部署到生產環境中。以下是將文件輸出到 dist 文件夾的原因:

分離開發環境和生產環境?

什么是DOM元素?

DOM(Document Object Model,文檔對象模型)是HTML文檔的編程接口。它將HTML文檔表示為一個由節點和對象組成的樹狀結構,允許開發者通過JavaScript動態訪問和操作文檔內容

在Vue.js中,Vue接管了DOM操作,開發者不需要直接操作DOM,而是通過聲明式的數據綁定來實現頁面的更新。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898174.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898174.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QT中讀取QSetting文件

1.ini文件的格式 頭文件 #include <QSettings> #include <QStringList> #include <QtCore> #include <QDebug>2.讀文件 //ini文件的讀取 void iniTest::readIniFile(QString filePath) {//1.打開ini文件QSettings m_iniFile(filePath, QSettings::I…

卷積神經網絡 - 一維卷積、二維卷積

卷積(Convolution)&#xff0c;也叫褶積&#xff0c;是分析數學中一種重要的運算。在信號處理或圖像處理中&#xff0c;經常使用一維或二維卷積&#xff0c;本博文我們來學習一維卷積和二維卷積。 理解一維卷積和二維卷積的核心在于把握維度對特征提取方式的影響。我們從數學定…

java學習總結(六)Spring IOC

一、Spring框架介紹 Spring優點&#xff1a; 1、方便解耦&#xff0c;簡化開發,IOC控制反轉 Spring 就是一個大工廠&#xff0c;可以將所有對象創建和依賴關系維護交給Spring 2、AOP 編程的支持 Spring 提供面向切編程&#xff0c;可以方便的實現對序進行權限攔截、運監控等…

大模型推理:LM Studio在Mac上部署Deepseek-R1模型

LM Studio LM Studio是一款支持離線大模型部署的推理服務框架&#xff0c;提供了易用的大模型部署web框架&#xff0c;支持Linux、Mac、Windows等平臺&#xff0c;并提供了OpenAI兼容的SDK接口&#xff0c;主要使用LLama.cpp和MLX推理后端&#xff0c;在Mac上部署時選擇MLX推理…

AI技術學習筆記系列004:GPU常識

顯卡架構是GPU設計的核心&#xff0c;不同廠商有其獨特的架構演進。以下是主要廠商的顯卡架構概述&#xff1a; 一、NVIDIA Tesla&#xff08;2006-2010&#xff09; 代表產品&#xff1a;GeForce 8000系列&#xff08;G80&#xff09;。特點&#xff1a;首款統一著色架構&…

實驗- 分片上傳 VS 直接上傳

分片上傳和直接上傳是兩種常見的文件上傳方式。分片上傳將文件分成多個小塊&#xff0c;每次上傳一個小塊&#xff0c;可以并行處理多個分片&#xff0c;適用于大文件上傳&#xff0c;減少了單個請求的大小&#xff0c;能有效避免因網絡波動或上傳中斷導致的失敗&#xff0c;并…

Android視頻渲染SurfaceView強制全屏與原始比例切換

1.創建UI添加強制全屏與播放按鈕 2.SurfaceView控件設置全屏顯示 3.全屏點擊事件處理實現 4.播放點擊事件處理 5.使用接口更新強制全屏與原始比例文字 強制全屏/原始比例 點擊實現

數據結構——串、數組和廣義表

串、數組和廣義表 1. 串 1.1 串的定義 串(string)是由零個或多個字符組成的有限序列。一般記為 S a 1 a 2 . . . a n ( n ≥ 0 ) Sa_1a_2...a_n(n\geq0) Sa1?a2?...an?(n≥0) 其中&#xff0c;S是串名&#xff0c;單引號括起來的字符序列是串的值&#xff0c; a i a_i a…

無再暴露源站!群聯AI云防護IP隱匿方案+防繞過實戰

一、IP隱藏的核心原理 群聯AI云防護通過三層架構實現源站IP深度隱藏&#xff1a; 流量入口層&#xff1a;用戶訪問域名解析至高防CNAME節點&#xff08;如ai-protect.example.com&#xff09;智能調度層&#xff1a;基于AI模型動態分配清洗節點&#xff0c;實時更新節點IP池回…

1.5.3 掌握Scala內建控制結構 - for循環

Scala的for循環功能強大&#xff0c;支持單重和嵌套循環。單重for循環語法為for (變量 <- 集合或數組 (條件)) {語句組}&#xff0c;可選篩選條件&#xff0c;循環變量依次取集合值。支持多種任務&#xff0c;如輸出指定范圍整數&#xff08;使用Range、to、until&#xff0…

【MySQL基礎-9】深入理解MySQL中的聚合函數

在數據庫操作中&#xff0c;聚合函數是一類非常重要的函數&#xff0c;它們用于對一組值執行計算并返回單個值。MySQL提供了多種聚合函數&#xff0c;如COUNT、SUM、AVG、MIN和MAX等。這些函數在數據分析和報表生成中扮演著關鍵角色。本文將深入探討這些聚合函數的使用方法、注…

windows版本的時序數據庫TDengine安裝以及可視化工具

了解時序數據庫TDengine&#xff0c;可以點擊官方文檔進行詳細查閱 安裝步驟 首先找到自己需要下載的版本&#xff0c;這邊我暫時只寫windows版本的安裝 首先我們需要點開官網&#xff0c;找到發布歷史&#xff0c;目前TDengine的windows版本只更新到3.0.7.1&#xff0c;我們…

Web測試

7、Web安全測試概述 黑客技術的發展歷程 黑客基本涵義是指一個擁有熟練電腦技術的人&#xff0c;但大部分的媒體習慣將“黑客”指作電腦侵入者。 黑客技術的發展 在早期&#xff0c;黑客攻擊的目標以系統軟件居多。早期互聯網Web并非主流應用&#xff0c;而且防火墻技術還沒有…

華為OD機試 - 最長的完全交替連續方波信號(Java 2023 B卷 200分)

題目描述 給定一串方波信號,要求找出其中最長的完全連續交替方波信號并輸出。如果有多個相同長度的交替方波信號,輸出任意一個即可。方波信號的高位用1標識,低位用0標識。 說明: 一個完整的信號一定以0開始并以0結尾,即010是一個完整的信號,但101,1010,0101不是。輸入的…

游戲引擎學習第163天

我們可以在資源處理器中使用庫 因為我們的資源處理器并不是游戲的一部分&#xff0c;所以它可以使用庫。我說過我不介意讓它使用庫&#xff0c;而我提到這個的原因是&#xff0c;今天我們確實有一個選擇——可以使用庫。 生成字體位圖的兩種方式&#xff1a;求助于 Windows 或…

7、什么是死鎖,如何避免死鎖?【高頻】

&#xff08;1&#xff09;什么是死鎖&#xff1a; 死鎖 是指在兩個或多個進程的執行時&#xff0c;每個進程都持有資源 并 等待其他進程 釋放 它所需的資源&#xff0c;如果此時所有的進程一直占有資源而不釋放&#xff0c;就會陷入互相等待的一種僵局狀態。 死鎖只有同時滿足…

Compose 實踐與探索十四 —— 自定義布局

自定義布局在 Compose 中相對于原生的需求已經小了很多&#xff0c;先講二者在本質上的邏輯&#xff0c;再說它們的使用場景&#xff0c;兩相對比就知道為什么 Compose 中的自定義布局的需求較小了。 原生是在 xml 布局文件不太方便或者無法滿足需求時才會在代碼中通過自定義 …

【C++】:C++11詳解 —— 入門基礎

目錄 C11簡介 統一的列表初始化 1.初始化范圍擴展 2.禁止窄化轉換&#xff08;Narrowing Conversion&#xff09; 3.解決“最令人煩惱的解析”&#xff08;Most Vexing Parse&#xff09; 4.動態數組初始化 5. 直接初始化返回值 總結 聲明 1.auto 類型推導 2. declty…

oracle刪除表中重復數據

需求&#xff1a; 刪除wfd_procs_nodes_rwk表中&#xff0c;huser_id、dnode_id、rwk_name字段值相同的記錄&#xff0c;如果有多條&#xff0c;只保留一條。 SQL&#xff1a; DELETE FROM wfd_procs_nodes_rwk t WHERE t.rowid > (SELECT MIN(t1.rowid)FROM wfd_procs_n…

ESP32學習 -從STM32工程架構進階到ESP32架構

ESP32與STM32項目文件結構對比解析 以下是對你提供的ESP32項目文件結構的詳細解釋&#xff0c;并與STM32&#xff08;以STM32CubeIDE為例&#xff09;的常見結構進行對比&#xff0c;幫助你理解兩者的差異&#xff1a; 1. ESP32項目文件解析 文件/目錄作用STM32對應或差異set…