当前位置:首页 > VUE

vue实现hash路由

2026-02-17 04:14:59VUE

Vue 实现 Hash 路由

在 Vue 中可以通过 vue-router 或手动监听 hashchange 事件来实现基于 Hash 的路由。

使用 vue-router 实现

安装 vue-router

vue实现hash路由

npm install vue-router

在项目中配置路由:

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
];

const router = new VueRouter({
  mode: 'hash', // 使用 Hash 模式
  routes,
});

new Vue({
  router,
  render: h => h(App),
}).$mount('#app');

在组件中使用路由:

vue实现hash路由

<router-link to="/">Home</router-link>
<router-link to="/about">About</router-link>
<router-view></router-view>

手动监听 hashchange 事件

如果不使用 vue-router,可以通过监听 window.onhashchange 实现简单的 Hash 路由:

export default {
  data() {
    return {
      currentRoute: window.location.hash.slice(1) || '/',
    };
  },
  created() {
    window.addEventListener('hashchange', () => {
      this.currentRoute = window.location.hash.slice(1) || '/';
    });
  },
  methods: {
    navigateTo(path) {
      window.location.hash = path;
    },
  },
};

在模板中动态渲染组件:

<button @click="navigateTo('/')">Home</button>
<button @click="navigateTo('/about')">About</button>

<div v-if="currentRoute === '/'">Home Page</div>
<div v-else-if="currentRoute === '/about'">About Page</div>

Hash 路由的特点

  • URL 格式为 http://example.com/#/path
  • 兼容性较好,支持老旧浏览器。
  • 不会向服务器发送请求,仅前端处理路由变化。
  • 适合静态部署或无后端支持的单页应用(SPA)。

标签: 路由vue
分享给朋友:

相关文章

vue的实现原理

vue的实现原理

Vue 的实现原理 Vue 是一个渐进式 JavaScript 框架,其核心实现原理主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。 响应式系统 Vue 使用 Object.defineP…

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身:…

vue实现https

vue实现https

Vue 中实现 HTTPS 的步骤 在 Vue 项目中实现 HTTPS 主要涉及开发环境配置和生产环境部署。以下是具体方法: 开发环境配置(Vue CLI 或 Vite) 使用 mkcert 生成…

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现grid

vue实现grid

Vue 实现 Grid 布局的方法 使用 CSS Grid 布局 Vue 可以结合 CSS Grid 布局实现灵活的网格系统。CSS Grid 是现代浏览器原生支持的布局方案,无需额外依赖库。 &…