当前位置:首页 > 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 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue实现水印

vue实现水印

Vue 实现水印的方法 使用 CSS 背景图 通过 CSS 的 background-image 和 background-repeat 属性实现水印效果。创建一个包含水印文本的 Canvas,将其转…

实现vue table

实现vue table

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

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现增加

vue实现增加

实现 Vue 中的新增功能 在 Vue 中实现新增功能通常涉及数据绑定、表单处理和状态管理。以下是几种常见的实现方式: 数据绑定与列表渲染 通过 v-model 绑定表单输入,使用数组的 push…

vue实现评价

vue实现评价

Vue实现评价功能 数据绑定与双向绑定 Vue的核心特性是数据绑定和双向绑定,通过v-model指令可以轻松实现表单输入与应用状态之间的双向绑定。在评价功能中,可以使用v-model绑定评论文本和评分…