当前位置: 首页 > news >正文

网站开发与设计实训心得学生如何自己做网站

网站开发与设计实训心得,学生如何自己做网站,合肥建网站公司,马鞍山市网站建设在最新版的 Vue-Router 中,我们使用createRouter和createWebHashHistory、createwebHistory、createMemoryHistory等方法来配置路由。 下面详细介绍这几种历史记录栈的使用与场景,并结合实际代码说明。 1. createWebHashHistory 原理: 1.…

在最新版的 Vue-Router 中,我们使用createRouter和createWebHashHistory、createwebHistory、createMemoryHistory等方法来配置路由。

下面详细介绍这几种历史记录栈的使用与场景,并结合实际代码说明。

1. createWebHashHistory

原理:

1. 使用 URL 的 hash(#)部分来模拟不同的路径;

2. 这种模式下的 URL 形如:http://example.com/#/path;

3. 因为 hash 部分不会被发送到服务器,所以服务器端不需要特别处理;

实现:

1. Vue-Router 通过监听 window.onhashchange 事件来检测 URL 的变化;

2. 当 hash 值变化时,Vue-Router 会解析 hash 部分并更新视图;

优点:

1. 简单易用,不需要服务器配置;

2. 浏览器支持良好;

缺点:

1. URL 不美观,带有 # 符号;

2. 对 SEO 不友好,因为 hash 不会被搜索引擎索引;

代码示例:

import { createRouter, createWebHashHistory } from 'vue-router';
import Home from '@/components/Home.vue';
import About from '@/components/About.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
];const router = createRouter({history: createWebHashHistory(),routes
});export default router;

2. createWebHistory

原理:

1. 利用 HTML5 History API 中的 pushState 和 replaceState 来管理历史记录;

2. URL 形如 http://example.com/path,没有 # 符号;

3. 这种模式需要服务器支持,因为浏览器在请求 URL 时会直接向服务器发送请求;

实现:

1. Vue-Router 通过监听 window.onpopstate 事件来检测 URL 的变化;

2. 使用 router.push 或 router.replace 方法时会调用 history.pushState 或 history.replaceState 方法改变 URL;

优点:

1. URL 美观,结构清晰;

2. 更加符合现代单页应用的路由需求;

缺点:

1. 需要服务器配置,确保所有路径都指向同一个 HTML 文件,以便客户端路由处理;

服务器配置示例:

location / {try_files $uri $uri/ /index.html;
}

代码示例:

import { createRouter, createWebHistory } from 'vue-router';
import Home from '@/components/Home.vue';
import About from '@/components/About.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
];const router = createRouter({history: createWebHistory(),routes
});export default router;

 

3. createMemoryHistory

原理:

1. 这种模式主要用于非浏览器环境,比如 Node.js 服务器端渲染时;

2. 不依赖于浏览器的 History API 或 hash 变化;

实现:

1. Vue-Router 使用内存中存储的路由状态来模拟路由行为;

2. 没有实际的 URL 变化,完全在代码中管理路由状态;

优点:

1. 适用于没有浏览器环境的场景,比如服务器端渲染或自动化测试;

缺点:

1. 只能用于特定场景,不适合普通的前端开发;

代码示例:

import { createRouter, createMemoryHistory } from 'vue-router';
import Home from '@/components/Home.vue';
import About from '@/components/About.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
];const router = createRouter({history: createMemoryHistory(),routes
});export default router;

4. 完整示例

// main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 路由配置在 router.js 文件中createApp(App).use(router).mount('#app');// router.js
import { createRouter, createWebHistory, createWebHashHistory, createMemoryHistory } from 'vue-router';
import Home from '@/components/Home.vue';
import About from '@/components/About.vue';const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
];// 选择不同的历史记录模式
const history = createWebHistory(); // 或者 createWebHashHistory() / createMemoryHistory()const router = createRouter({history,routes
});export default router;// App.vue
<template><div id="app"><router-link to="/">Home</router-link><router-link to="/about">About</router-link><router-view></router-view></div>
</template><script>
export default {name: 'App'
};
</script>

5. 总结

createWebHashHistory:适合简单项目和不需要 SEO 的场景,使用 hash 部分来管理路由;

createWebHistory:适合需要美观 URL 和 SEO 的场景,需要服务器支持,使用 HTML5 History API;

createMemoryHistory:适合非浏览器环境,比如服务器端渲染或自动化测试,使用内存管理路由;

http://www.dtcms.com/a/422320.html

相关文章:

  • 网站建设自学要想提高网站排名应该如何做
  • 做网站的边框素材武昌建设局网站
  • 河南省建设厅网站打不开360浏览器建设银行网站
  • 网站设置不能手机访问iis默认网站不能启动
  • 炫酷一些的网站织梦微信网站模板
  • 响水做网站价格做网站备案都需要什么东西
  • element ui设计网站wordpress移除自豪的使用
  • 电商类网站设计模板网页设计感十足的网站
  • 公司网站建设佛山哪家好全球最好的云服务器
  • 做电影网站如何赚钱安庆建设银行网站
  • 深圳分销网站建设团购网站建设
  • 长春网站建设模板wordpress 弹窗登录
  • 什么网站的页面好看杭州室内设计公司排行榜
  • vs2012做网站正规的代运营公司
  • 做网站阿里巴巴好还是百度好上海中学官网电脑版
  • 深圳易捷网站建设比较好的网站建设网站
  • 网站建设团队分工足彩网站建设
  • 网站怎么挖掘关键词php开发大型网站开发
  • 哪个浏览器可以做网站第一次做网站不知道
  • 东莞市住房和城乡建设局网站成品ppt网站国外
  • 建设企业网站开发公司做谱的网站
  • 东台做网站找哪家好网站建设平台代理
  • 个人网站写什么好遵义网站开发公司电话
  • 泰州市网站建设成品网站整套源码
  • 东莞企业网站建设建筑公司排名前100
  • 百度不收录网站关键词有没有做古装衣服的网站
  • 网页设计制作网站图片水电维修在哪个网站上做推广好些
  • 品牌网站建设网站怎么做网站浮动模块
  • 做印刷网站公司哪家好windows网站模板
  • 超好看的排版素材网站商丘网站建设广告