当前位置:首页 > VUE

vue实现spa案列

2026-02-22 12:57:21VUE

Vue 实现 SPA 案例

项目初始化

使用 Vue CLI 创建项目,确保已安装 Node.js 和 npm/yarn:

npm install -g @vue/cli
vue create vue-spa-demo
cd vue-spa-demo

安装路由依赖

Vue Router 是构建 SPA 的核心工具:

npm install vue-router

配置路由

src/router/index.js 中配置路由规则:

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.js 引入路由:

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

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

根组件模板

src/App.vue 中添加路由占位符和导航:

<template>
  <div id="app">
    <nav>
      <router-link to="/">Home</router-link>
      <router-link to="/about">About</router-link>
    </nav>
    <router-view/>
  </div>
</template>

创建页面组件

src/views/ 目录下创建页面组件:

vue实现spa案列

  • Home.vue:

    <template>
    <div>Welcome to Home Page</div>
    </template>
  • About.vue:

    <template>
    <div>About Page Content</div>
    </template>

动态路由示例

在路由配置中添加带参数的路由:

{
  path: '/user/:id',
  component: () => import('../views/User.vue')
}

User.vue 中获取参数:

vue实现spa案列

export default {
  computed: {
    userId() {
      return this.$route.params.id
    }
  }
}

路由守卫

添加全局前置守卫控制访问权限:

router.beforeEach((to, from, next) => {
  if (to.meta.requiresAuth && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

部署配置

vue.config.js 中设置 publicPath 适应生产环境:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/your-project-name/' : '/'
}

运行与构建

开发模式运行:

npm run serve

生产环境构建:

npm run build

关键点总结

  • 路由配置通过 createRouter 实现
  • <router-view> 作为组件渲染出口
  • <router-link> 实现导航跳转
  • 动态路由通过冒号语法 :param 定义
  • 路由守卫控制导航逻辑
  • 懒加载提升性能(() => import() 语法)

标签: vuespa
分享给朋友:

相关文章

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式:…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要依赖…

vue element实现

vue element实现

Vue Element UI 实现 Vue Element UI 是基于 Vue.js 的组件库,提供丰富的 UI 组件,适合快速开发企业级中后台产品。以下是一些关键实现方法和步骤: 安装 Vue…

vue列表实现

vue列表实现

Vue 列表实现方法 使用 v-for 指令 v-for 是 Vue 中用于渲染列表的核心指令,基于数据源动态生成 DOM 元素。语法格式为 item in items 或 (item, index)…

vue实现RTMP

vue实现RTMP

Vue 中实现 RTMP 流播放 RTMP(Real-Time Messaging Protocol)是一种用于实时音视频流传输的协议。在 Vue 中实现 RTMP 播放通常需要借助第三方库或播放器。…

实现vue table

实现vue table

Vue 表格实现方法 基础表格实现 使用 Vue 的 v-for 指令可以快速渲染表格数据。在模板中定义表格结构,通过数据绑定动态生成行和列。 <template> <tabl…