一文带你从零开始搭建vue3项目

一文带你从零开始搭建vue3项目

前言

Vue 3 是一款快速、小巧、易上手的前端框架,是Vue.js框架的最新版本。它具有较高的性能,提供更好的开发者体验,可帮助我们更快速地构建出一个高性能的web应用。

本文将为大家详细讲解如何从零开始搭建Vue3项目以及如何创建组件、路由和状态管理等方面。

准备工作

要开始构建 Vue3 项目,需要安装 Node.js 及 npm,这里不再赘述。

接下来,我们需要全局安装 Vue CLI(Vue开发的标准工具):

npm install -g @vue/cli

检查 Vue CLI 是否安装成功,使用以下命令:

vue -V

显示版本号即为成功。

创建项目

使用 Vue CLI 创建我们的 Vue3 项目:

vue create vue3-demo

回车后,在创建选项中选择默认即可。

等待项目创建完成后,进入项目:

cd vue3-demo

然后,启动我们的项目:

npm run serve

如果没有报错,说明 Vue3 项目已经成功搭建好了。

创建组件

接下来,我们就可以开始创建我们的Vue3组件了。

首先,在src/components/中,创建一个 HelloWorld.vue 文件,添加以下代码:

<template>
  <div>{{ msg }}</div>
</template>

<script lang="ts">
import { defineComponent } from 'vue'

export default defineComponent({
  name: 'HelloWorld',
  props: {
    msg: {
      type: String,
      default: ''
    }
  }
})
</script>

<style>
</style>

这个组件名为 HelloWorld,内部定义了一个名为 msg 的 props 并将其展示在了页面上。

接下来,我们需要在 App.vue 中引入这个组件,修改代码如下:

<template>
  <div id="app">
    <HelloWorld msg="Welcome to Vue 3!" />
  </div>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
import HelloWorld from '@/components/HelloWorld.vue'

export default defineComponent({
  name: 'App',
  components: {
    HelloWorld
  }
})
</script>

<style>
</style>

这样,我们就创建了一个包含了自定义组件 HelloWorld 的 Vue3 项目。

创建路由

接下来,我们需要创建路由。在 Vue3 中,我们需要使用 vue-router 来实现路由。

首先,我们需要安装 vue-router:

npm install vue-router@next

然后,在src/目录下创建 router/index.ts 文件:

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/views/Home.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

export default router

这样,我们就创建了一个Home组件,并定义它的默认路由为高亮。接下来,需要在我们的项目中启用路由:

在 main.ts 文件中修改代码:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

这样,我们就完成了路由的创建。

状态管理

Vue.js 3 推出了新的状态管理工具 Vuex 4,我们可以使用它来实现全局状态的管理。

首先,安装 Vuex 4:

npm install vuex@next

在 src/store/index.ts 中编写 store 代码:

import { createLogger, createStore, Store, useStore as baseUseStore } from 'vuex'
import { InjectionKey } from 'vue'

// interface AppState {
//   count: number
// }

// 定义放哪儿
export const key: InjectionKey<Store<unknown>> = Symbol()

// 注册 modules
const modules = {}

// create store instance
const store = createStore({
  plugins: import.meta.env.DEV ? [createLogger()] : [],
  modules
})

export default store

// 使用
export function useStore() {
  return baseUseStore(key)
}

最后,在 main.ts 中使用 store:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store, { key } from './store'

createApp(App)
  .use(store, key)
  .use(router)
  .mount('#app')

至此,我们已经成功创建 Vue3 项目,包含了组件、路由和状态管理。

总结

通过以上内容,我们可以学习到如何搭建 Vue3 项目、创建组件、路由和状态管理。通过这些基础内容,我们可以更好地去构建出一个高性能、易维护的Vue3应用。

示例:

参考:

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你从零开始搭建vue3项目 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vscode 插件开发 + vue的操作方法

    Vscode 插件开发 + Vue 操作方法 在本文中,我们将介绍如何使用 VSCode 开发插件,并在插件中使用 Vue。 环境要求 在开始使用 Vue 进行开发之前,我们需要先安装好以下环境: Node.js Visual Studio Code Vue CLI 如果您的电脑上还没有这些环境,请先安装好它们。 创建一个 VSCode 插件项目 使用以下命…

    Vue 2023年5月28日
    00
  • vue2.0的计算属性computed和watch的区别及各自使用场景解读

    Vue2.0的计算属性computed和watch的区别及各自使用场景解读 Vue2.0中,Vue实例提供了两种方法:computed和watch来追踪和响应状态变化。 计算属性computed 定义:computed是一个计算属性,其返回值依赖于其他的状态数据。computed属性默认只有getter方法,因此不可以修改。 示例 <template&…

    Vue 2023年5月29日
    00
  • Vue异步更新DOM及$nextTick执行机制解读

    Vue异步更新DOM及$nextTick执行机制解读 在 Vue 中,DOM 更新并不是同步执行的,除非使用 this.$nextTick 方法,它可以保证在本次 DOM 更新后执行回调函数,下面我就来详细解读这个机制。 异步更新DOM Vue 在进行 DOM 更新时,通常借助浏览器的异步更新机制,将多个数据变更合并为一次更新,以提高更新效率。这个机制体现在…

    Vue 2023年5月29日
    00
  • vue watch监控对象的简单方法示例

    下面是详细讲解 “Vue watch 监控对象的简单方法示例” 的完整攻略。 什么是 Vue Watch? Vue 是一个响应式框架,数据的变化能够自动触发视图的更新。Vue Watch 提供了一种方式来监听 Vue 实例中某个数据的变化,当它的值发生变化时,可以触发特定的操作。 如何在 Vue 中使用 Watch 在 Vue 实例中,可以使用 watch …

    Vue 2023年5月28日
    00
  • vue.js动态组件和插槽的使用汇总

    Vue.js动态组件和插槽的使用汇总 Vue.js中的动态组件和插槽是非常有用的功能,可以使组件更加灵活和可重用。这篇文章将对动态组件和插槽进行详细讲解,以及两个示例说明。 动态组件的使用 Vue.js中的动态组件是一种特殊的组件,可以根据当前组件数据的状态动态地渲染不同的组件。动态组件通常与v-bind的特性一起使用,将组件的名称绑定到数据中。 示例一:根…

    Vue 2023年5月27日
    00
  • 详解Vue中的keep-alive

    标题: 详解Vue中的keep-alive使用方法和原理 正文:Vue中的keep-alive是一个性能优化的重要组件,它可以将不活跃的组件缓存起来,减少组件的不必要的重渲染,提升页面的渲染效率。本文主要介绍keep-alive的使用方法和原理。 keep-alive的常用属性 keep-alive有几个常用的属性: include:需要被缓存的组件名,可以…

    Vue 2023年5月27日
    00
  • vue页面离开后执行函数的实例

    当我们使用Vue.js来构建前端项目时,有时候需要在页面离开后执行某些操作。这时候我们可以利用Vue的生命周期钩子来实现,在页面离开时执行我们需要的函数。 具体来说,我们可以利用 beforeRouteLeave 钩子在用户离开当前页面前执行某些逻辑。这个钩子会在导航离开当前路由的对应组件时被调用,你可以在该钩子内部访问组件实例 this。 下面是示例代码:…

    Vue 2023年5月28日
    00
  • Vue中使用elementui与Sortable.js实现列表拖动排序

    下面我将详细讲解在Vue中如何使用elementui与Sortable.js实现列表拖动排序。 1. 安装ElementUI与Sortable.js 首先,我们需要安装ElementUI和Sortable.js。在终端中使用以下命令安装: npm install element-ui sortablejs –save 2. 引入ElementUI与Sort…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部