Vue 3 實戰教程(快速入門)

Vue 3 實戰教程(快速入門)

Vue.js 是一個用于構建用戶界面的漸進式框架,Vue 3 是 Vue 的最新版本,帶來了許多改進和新特性。本文將通過一個簡單的項目示例,帶你快速入門 Vue 3 的基礎使用。

環境設置

安裝 Node.js 和 npm

確保你已經安裝了 Node.js 和 npm,可以通過以下命令檢查:

node -v
npm -v

如果沒有安裝,請前往 Node.js 官網 下載并安裝最新的 LTS 版本。

創建 Vue 3 項目

使用 Vue CLI 創建一個新的 Vue 3 項目。首先,全局安裝 Vue CLI:

npm install -g @vue/cli

然后,創建一個新項目:

vue create my-vue3-project

選擇默認設置或根據你的需要進行自定義設置。

項目結構

創建完成后,項目結構大致如下:

my-vue3-project/
├── node_modules/
├── public/
├── src/
│   ├── assets/
│   ├── components/
│   │   └── HelloWorld.vue
│   ├── App.vue
│   ├── main.js
├── .gitignore
├── babel.config.js
├── package.json
├── README.md
└── vue.config.js

編寫你的第一個組件

修改 App.vue

打開 src/App.vue 文件,修改模板和樣式:

<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue';export default {name: 'App',components: {HelloWorld}
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>
創建一個新的組件

src/components/ 目錄下創建一個名為 MyComponent.vue 的新文件:

<template><div class="my-component"><h2>{{ title }}</h2><button @click="increment">Click me</button><p>Count: {{ count }}</p></div>
</template><script setup>
import { ref } from 'vue';const title = 'My First Vue 3 Component';
const count = ref(0);function increment() {count.value++;
}
</script><style scoped>
.my-component {text-align: center;
}button {padding: 10px 20px;font-size: 16px;
}
</style>

使用新組件

打開 src/App.vue 文件,引入并使用 MyComponent

<template><div id="app"><img alt="Vue logo" src="./assets/logo.png"><HelloWorld msg="Welcome to Your Vue.js App"/><MyComponent /></div>
</template><script>
import HelloWorld from './components/HelloWorld.vue';
import MyComponent from './components/MyComponent.vue';export default {name: 'App',components: {HelloWorld,MyComponent}
};
</script>

使用 Composition API

Vue 3 引入了 Composition API,這使得在組件中組織邏輯變得更加靈活和可重用。讓我們在 MyComponent.vue 中使用 Composition API。

<template><div class="my-component"><h2>{{ title }}</h2><button @click="increment">Click me</button><p>Count: {{ count }}</p></div>
</template><script setup lang="ts">
import { ref } from 'vue';const title = ref('My First Vue 3 Component');
const count = ref(0);function increment() {count.value++;
}
</script><style scoped>
.my-component {text-align: center;
}button {padding: 10px 20px;font-size: 16px;
}
</style>

路由和狀態管理

安裝 Vue Router

Vue Router 是 Vue.js 的官方路由器,用于構建單頁面應用。安裝 Vue Router:

npm install vue-router@next
配置路由

src 目錄下創建一個 router 文件夾,并在其中創建 index.ts 文件:

// src/router/index.ts
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
];const router = createRouter({history: createWebHistory(),routes
});export default router;
使用路由

修改 src/main.ts 文件,使用路由:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';createApp(App).use(router).mount('#app');
創建視圖組件

src/views 目錄下創建 Home.vueAbout.vue 文件:

<!-- src/views/Home.vue -->
<template><div><h1>Home</h1><p>Welcome to the Home page.</p></div>
</template><script setup>
</script><style scoped>
</style>
<!-- src/views/About.vue -->
<template><div><h1>About</h1><p>This is the About page.</p></div>
</template><script setup>
</script><style scoped>
</style>
更新 App.vue

修改 src/App.vue 文件以添加導航鏈接:

<template><div id="app"><nav><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></nav><router-view></router-view></div>
</template><script setup>
</script><style>
nav {margin-bottom: 20px;
}nav a {margin-right: 10px;text-decoration: none;color: #42b983;
}nav a.router-link-active {font-weight: bold;
}
</style>

狀態管理 (Vuex)

雖然 Vue 3 推薦使用 Composition API 進行狀態管理,但你仍然可以使用 Vuex。

安裝 Vuex
npm install vuex@next
配置 Vuex

src 目錄下創建一個 store 文件夾,并在其中創建 index.ts 文件:

// src/store/index.ts
import { createStore } from 'vuex';export default createStore({state: {count: 0},mutations: {increment(state) {state.count++;}},actions: {increment({ commit }) {commit('increment');}},getters: {count: (state) => state.count}
});
使用 Vuex

修改 src/main.ts 文件,使用 Vuex:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';createApp(App).use(router).use(store).mount('#app');
訪問 Vuex 狀態

在組件中訪問 Vuex 狀態和方法:

<template><div class="my-component"><h2>{{ title }}</h2><button @click="increment">Click me</button><p>Count: {{ count }}</p></div>
</template><script setup>
import { computed } from 'vue';
import { useStore } from 'vuex';const store = useStore();const title = 'My First Vue 3 Component';
const count = computed(() => store.state.count);function increment() {store.dispatch('increment');
}
</script><style scoped>
.my-component {text-align: center;
}button {padding: 10px 20px;font-size: 16px;
}
</style>

總結

通過以上步驟,你已經快速了解了如何使用 Vue 3 和 TypeScript 創建一個簡單的項目,包括組件創建、路由配置和狀態管理。希望這個快速入門教程對你有所幫助,可以作為你進一步學習和使用 Vue 3 的基礎。

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

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

相關文章

多多代播24小時值守:電商直播時代是帶貨爆單的關鍵

在電商直播盛行的今天&#xff0c;直播帶貨已成為品牌與消費者溝通的關鍵。然而&#xff0c;流量波動大&#xff0c;競爭激烈&#xff0c;使品牌面臨諸多挑戰。因此&#xff0c;許多品牌尋求專業代播服務&#xff0c;并特別強調24小時值守的重要性。 流量來源的不穩定性是一個顯…

《VUE.js 實戰》讀書筆記

1. 初識vue.js MVVM模式從MVC模式演化而來&#xff0c;但是MVVM模式更多應用在前端&#xff0c;MVC則是前后端共同表現。傳統開發模式&#xff1a;jQuery RequireJS ( SeaJS ) artTemplate ( doT ) Gulp ( Grunt)。vue.js可以直接通過script引入方式開發&#xff0c;也可以…

Linux下安裝RocketMQ:從零開始的消息中間件之旅

感謝您閱讀本文&#xff0c;歡迎“一鍵三連”。作者定會不負眾望&#xff0c;按時按量創作出更優質的內容。 ?? 1. 畢業設計專欄&#xff0c;畢業季咱們不慌&#xff0c;上千款畢業設計等你來選。 RocketMQ是一款分布式消息中間件&#xff0c;具有高吞吐量、低延遲、高可用性…

本末倒置!做660+880一定要避免出現這3種情況!

每年都有不少人做過660題&#xff0c;但是做過之后&#xff0c;并沒有真正理解其中的題目&#xff0c;所以做過之后效果也不好&#xff01;再去做880題&#xff0c;做的也會比較吃力。 那該怎么辦呢&#xff0c;不建議你繼續做880題&#xff0c;先把660給吃透再說。 接下來給…

PostgreSQL使用教程

安裝 PostgreSQL 您可以從 PostgreSQL 官方網站下載適合您操作系統的安裝程序&#xff0c;并按照安裝向導進行安裝。 啟動數據庫服務器 安裝完成后&#xff0c;根據您的操作系統&#xff0c;通過相應的方式啟動數據庫服務器。 連接到數據庫 可以使用命令行工具&#xff08;如 p…

Objective-C使用塊枚舉的細節

對元素類型的要求 在 Objective-C 中&#xff0c;NSArray 只能存儲對象類型&#xff0c;而不能直接存儲基本類型&#xff08;例如 int&#xff09;。但是&#xff0c;可以將基本類型封裝在 NSNumber 等對象中&#xff0c;然后將這些對象存儲在 NSArray 中。這樣&#xff0c;en…

Maven編譯打包時報“PKIX path building failed”異常

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 方法11.報錯信息2.InstallCert.java3.生成證書文件 jssecacerts4.復制 jssecacerts 文件5. 然后重啟Jenkins 或者maven即可 方法21.下載證書2. 導入證書執行keytool…

7.優化算法之分治-快排歸并

0.分治 分而治之 1.顏色分類 75. 顏色分類 - 力扣&#xff08;LeetCode&#xff09; 給定一個包含紅色、白色和藍色、共 n 個元素的數組 nums &#xff0c;原地對它們進行排序&#xff0c;使得相同顏色的元素相鄰&#xff0c;并按照紅色、白色、藍色順序排列。 我們使用整數…

Elasticsearch (1):ES基本概念和原理簡單介紹

Elasticsearch&#xff08;簡稱 ES&#xff09;是一款基于 Apache Lucene 的分布式搜索和分析引擎。隨著業務的發展&#xff0c;系統中的數據量不斷增長&#xff0c;傳統的關系型數據庫在處理大量模糊查詢時效率低下。因此&#xff0c;ES 作為一種高效、靈活和可擴展的全文檢索…

PHP爬蟲類的使用技巧與注意事項

php爬蟲類的使用技巧與注意事項 隨著互聯網的迅猛發展&#xff0c;大量的數據被不斷地生成和更新。為了方便獲取和處理這些數據&#xff0c;爬蟲技術應運而生。PHP作為一種廣泛應用的編程語言&#xff0c;也有許多成熟且強大的爬蟲類庫可供使用。在本文中&#xff0c;我們將介…

Qt Creator 的設置文件保存位置

在使用 Qt Creator 進行開發時,備份或遷移設置(例如文本編輯器偏好、語法高亮等)是常見需求。了解這些設置文件在不同操作系統中的保存位置,可以簡化這個過程。本文將為您詳細介紹 Qt Creator 保存設置文件的位置。 默認文件位置 Qt Creator 會創建多個文件和目錄來存儲其…

springboot系列八: springboot靜態資源訪問,Rest風格請求處理, 接收參數相關注解

文章目錄 WEB開發-靜態資源訪問官方文檔基本介紹快速入門注意事項和細節 Rest風格請求處理基本介紹應用實例注意事項和細節思考題 接收參數相關注解基本介紹應用實例PathVariableRequestHeaderRequestParamCookieValueRequestBodyRequestAttributeSessionAttribute ?? 上一篇…

微服務-網關Gateway

個人對于網關路由的理解&#xff1a; 網關就相當于是一個項目里面的保安&#xff0c;主要作用就是做一個限制項。&#xff08;zuul和gateway兩個不同的網關&#xff09; 在路由中進行配置過濾器 過濾器工廠&#xff1a;對請求或響應進行加工 其中filters&#xff1a;過濾器配置…

探索QCS6490目標檢測AI應用開發(三):模型推理

作為《探索QCS6490目標檢測AI應用開發》文章&#xff0c;緊接上一期&#xff0c;我們介紹如何在應用程序中介紹如何使用解碼后的視頻幀結合Yolov8n模型推理。 高通 Qualcomm AI Engine Direct 是一套能夠針對高通AI應用加速的軟件SDK&#xff0c;更多的內容可以訪問&#xff1a…

摸魚大數據——Spark基礎——Spark環境安裝——PySpark搭建

三、PySpark環境安裝 PySpark: 是Python的庫, 由Spark官方提供. 專供Python語言使用. 類似Pandas一樣,是一個庫 Spark: 是一個獨立的框架, 包含PySpark的全部功能, 除此之外, Spark框架還包含了對R語言\ Java語言\ Scala語言的支持. 功能更全. 可以認為是通用Spark。 功能 P…

Golang | Leetcode Golang題解之第199題二叉樹的右視圖

題目&#xff1a; 題解&#xff1a; /** 102. 二叉樹的遞歸遍歷*/ func levelOrder(root *TreeNode) [][]int {arr : [][]int{}depth : 0var order func(root *TreeNode, depth int)order func(root *TreeNode, depth int) {if root nil {return}if len(arr) depth {arr a…

線性代數--行列式1

本篇來自對線性代數第一篇的行列式的一個總結。 主要是行列式中有些關鍵點和注意事項&#xff0c;便于之后的考研復習使用。 首先&#xff0c;對于普通的二階和三階行列式&#xff0c;我們可以直接對其進行拆開&#xff0c;展開。 而對于n階行列式 其行列式的值等于它的任意…

每個架構師都應該讀的八本經典書籍

格雷戈爾霍普在本文討論了8本被視為軟件架構師必讀的經典書籍。 以下是所提及的關鍵書籍的摘要&#xff1a; 1、維特魯威&#xff08;公元前 20 年&#xff09;的《建筑學》&#xff1a; 雖然與軟件架構沒有直接關系&#xff0c;但這部古代文獻被提及&#xff0c;具有歷史背景…

C++特殊類設計單例模式...

文章目錄 請設計一個類&#xff0c;不能被拷貝請設計一個類&#xff0c;只能在堆上創建對象請設計一個類&#xff0c;只能在棧上創建對象請設計一個類&#xff0c;不能被繼承請設計一個類&#xff0c;只能創建一個對象(單例模式)單例模式&#xff1a;餓漢模式&#xff1a;懶漢模…

代發考生戰報:6月25號 南寧 HCIP-Transmission傳輸 H31-341考試884分通過

代發考生戰報&#xff1a;6月25號 南寧 HCIP-Transmission傳輸 H31-341考試884分通過 &#xff0c;今天我和同事兩個人去考的&#xff0c;我考試遇到1個新題&#xff0c;他遇到兩個新題&#xff0c;客服提供的題庫很穩定&#xff0c;全覆蓋了&#xff0c;輕松通過&#xff0c;考…