用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法
一,安裝
提示: VUE3.0目前還沒有官方的翻譯文檔。但是已經(jīng)有人翻譯了。得到了尤雨溪大佬的點(diǎn)贊,這里附上網(wǎng)址https://v3.cn.vuejs.org/
1.安裝 cli
因?yàn)橐褂?vue3 必須要求 cli 的版本比較高,必須要高于 4.5.X
所以沒有安裝的 cli 的就直接安裝最新版就行了,已有的可以升級(jí)或者卸載后重新安裝
最好是全局安裝
//全局安裝 npm install -g @vue/cli # OR yarn global add @vue/cli //全局卸載 npm uninstall -g vue-cli # OR yarn global remove vue-cli //升級(jí)cli npm update -g @vue/cli # OR yarn global upgrade --latest @vue/cli //查看本機(jī)cli版本 vue --version
2.創(chuàng)建項(xiàng)目
既然我們都使用了 VUE3,不妨來試試最新的 vite 構(gòu)建工具。
沒準(zhǔn)可以給你打開新世界的大門
//新建項(xiàng)目 npm init vite-app asiterVue3 //進(jìn)入目錄 cd asiterVue3 //安裝依賴 npm install //運(yùn)行 npm run dev
3. 查看項(xiàng)目
VUE3.0 相比 VUE2.0 來說可以說的是簡(jiǎn)潔了不少
而且 main.js 改動(dòng)也是非常明顯
VUE3.0
import { createApp } from "vue";
import App from "./App.vue";
import "./index.css";
createApp(App).mount("#app");
VUE2.0
import Vue from "vue";
import App from "./App";
Vue.config.productionTip = false;
new Vue({
el: "#app",
components: { App },
template: "<App/>",
});
其次我們目光放到 App.vue 上,最明顯的事情就是 template 節(jié)點(diǎn)內(nèi)不是只能存在一個(gè)根節(jié)點(diǎn)了。
//就是這個(gè)地方 雖然Vetur插件會(huì)報(bào)錯(cuò) 但是不影響使用
<template>
<img alt="Vue logo" src="./assets/logo.png" />
<HelloWorld msg="Hello Vue 3.0 + Vite" />
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
4.添加路由 Vue-Router
由于我們用的是 VUE3.0,所以我們VUE-ROUTER也要對(duì)應(yīng)版本為 4.X.
npm install vue-router@next -S
附件:
npm install vue-router 會(huì)下到 3.0 的版本
所以我們需要 npm install vue-router@next -S 進(jìn)行安裝
這里附上 github 地址https://github.com/vuejs/vue-router-next/releases
截至到今天 2020 年 10 月 14 日,版本已經(jīng)是 v4.0.0-beta.13
安裝好后,不會(huì)用怎么辦。讓我們來看看官方的例子先
不會(huì)用,我直接 CV 一波還不行咩
附件:
官方例子地址
https://codesandbox.io/s/vue-router-4-reproduction-hb9lh?file=/index.html
篇幅問題我只粘貼主要部分
<script>
const { createRouter, createWebHistory, createWebHashHistory } = VueRouter
const { createApp } = Vue
const Home = {
template: `<div>home</div>`,
}
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', component: Home },
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar },
],
})
const app = createApp({})
app.use(router)
window.vm = app.mount('#app')
</script>
這些就是官方例子,我們發(fā)現(xiàn)路由的創(chuàng)建有點(diǎn)不同了。
vue2.0 里面是用 mode 來控制路由模式的參數(shù)
但是在 vue3 里面通過 createRouter 來創(chuàng)建路由實(shí)例
history 屬性來當(dāng)控制路由模式的參數(shù)
顧名思義
createWebHistory 方法返回的是 History 模式
createWebHashHistory 方法返回的是 Hash 模式
所以我們嘗試添加進(jìn)去
先在 src 目錄下新建一個(gè) router 文件夾,然后在文件夾下面添加一個(gè) index.js 文件
在文件里面添加以下內(nèi)容
import { createRouter, createWebHashHistory } from "vue-router";
export default createRouter({
history: createWebHashHistory(),
routes: [
{
path: "/weclome",
component: () => import("../views/HelloWorld.vue"),
},
],
});
同時(shí)在 src 下新建一個(gè) views 的文件夾,添加一個(gè) HelloWorld.vue 的文件
加入以下代碼,因?yàn)槭浅跻?。我就不嘗試其他的 API 了,先跑個(gè)效果
<template> <div>helloWord!weclome to Vue3.0.Asiter</div> </template>
然后改造一下我們的 App.vue
<template>
<router-view></router-view>
</template>
<script>
export default {
name: "App",
components: {},
};
</script>
最后修改一下我們的最重要的 main.js 文件配置好 router
import { createApp } from "vue";
import App from "./App.vue";
import "./index.css";
import router from "./route";
createApp(App)
.use(router)
.mount("#app");
啟動(dòng)項(xiàng)目,在地址欄輸入http://192.168.1.233:3000/#/weclome
發(fā)現(xiàn)得到我們想要的東西了
5.添加狀態(tài)管理 Vuex
又是由于我們用的是 VUE3.0,所以我們Vuex也要對(duì)應(yīng)支持的版本
截至到今天.已經(jīng)更新到了 4.0.0-beta.4
附件:
附上 github 地址https://github.com/vuejs/vuex/releases
npm i vuex@next -S
然后接著看官方的案例https://github.com/vuejs/vuex/tree/v4.0.0-beta.4
import { createStore } from "vuex";
export const store = createStore({
state() {
return {
count: 1,
};
},
});
和 router 一樣,對(duì)比 VUE2 來說也是改了寫法,先從 vuex 內(nèi)用 createStore 創(chuàng)建一個(gè)實(shí)例
然后我們也照著寫一個(gè)
在 src 目錄下新建一個(gè) store 目錄然后添加一個(gè) index.js 文件.寫入以下內(nèi)容
import { createStore } from "vuex";
export const store = createStore({
state() {
return {
author: "Asiter",
describe: "一個(gè)貼膜的少年",
};
},
});
回到我們的 main.js,修改一下。添加 vuex
import { createApp } from "vue";
import App from "./App.vue";
import "./index.css";
import router from "./route";
import { store } from "./store";
createApp(App)
.use(router)
.use(store)
.mount("#app");
回到一開始我們 views 下的 HelloWorld.vue 這個(gè)文件
改造一下
<template>
<div>helloWord!weclome to Vue3.0.Asiter</div>
</template>
<script>
export default {
mounted() {
console.log("這個(gè)男人是誰:>> ", this.$store.state.author);
console.log("他怎么樣:>> ", this.$store.state.describe);
},
};
</script>
啟動(dòng)服務(wù)器
打開控制臺(tái)
重新在地址欄輸入http://192.168.1.233:3000/#/weclome
看到了打印信息
這個(gè)男人是誰:>> Asiter
他怎么樣:>> 一個(gè)貼膜的少年
6.總結(jié)
初期項(xiàng)目就到這里了,vue3 還是有很多很好玩的地方的。下次我們就來看看 VUE3 的亮點(diǎn) Composition API 的使用。(最近原神玩的肝有點(diǎn)痛)
到此這篇關(guān)于用vite搭建vue3應(yīng)用的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)vite搭建vue3內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue2.x中的provide和inject用法小結(jié)
這篇文章主要介紹了vue2.x中的provide和inject用法小結(jié),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
Vue實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽頁面寬度高度變化
這篇文章主要為大家詳細(xì)介紹了Vue如何實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽頁面寬度高度變化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
vue3實(shí)現(xiàn)CSS無限無縫滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了vue3實(shí)現(xiàn)CSS無限無縫滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

