06_Vue-router与综合练习

这篇具有很好参考价值的文章主要介绍了06_Vue-router与综合练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue-router

一.生命周期钩子函数

含义:在生命周期处理响应函数的别称

1.初始化

beforeCreat:创建对象时,没初始化data和methods

created:实例已经创建好了,此时在里面发送ajax请求

2.挂载

beforeMount:还没与挂载到页面中

munted:模块已经挂载好了

3.更新

beforeUpdate:更新之前的数据

Updated:已经更新好的数据

改变视图数据的时候使用

4.销毁

beforeDestroy:实例销毁之前调用

destroyed:实例销毁之后使用

vue CLI脚手架

帮助快速搭建vue项目的工具

1.安装脚手架,控制台

npm install -g @vue/cli

2.使用脚手架创建项目,在自己的项目位置下的控制台

vue create 项目名称

3.使用上下键和空格键进行选择,使用最后一个(Manually …)手动配置,除了TypeScript不选,前五个都选,后面选择less处理css

4.需要进入项目目录 “cd 项目名称”

5.使用命令运行项目 “npm run serve”

6.浏览器输入地址进行访问 “http://localhost:8081/”

7.给idea在plugins中安装vue.js 的插件,否则没有对应的模块可以使用

vue路由

本质就是一个映射表,决定数据的指向

后端路由

单体项目(前后端代码混在一起)

​ 1.使用contrller中执行请求和响应

​ 2.跳转到一个视图页面(服务器找对应的视图),经过渲染(解析jsp中的jstl),生成对应的html代码

​ 3.将渲染好的html响应给浏览器

​ 4.后端渲染的好处:提高首屏渲染的性能

​ 5.缺点:维护难度偏大

前后端分离

​ 后端一个项目:

​ 写接口,给前端提供数据(json/xml等)

​ 前端一个项目:

​ 数据渲染(将数据填充到指定位置)

​ 页面较多,如何进行跳转

​ js跳转:location.href=url,刷新整个页面

​ 前端路由:不会刷新整个页面

spa(单页面应用)

​ 刷新整个页面

非spa

不刷新整个页面

前端的路由规则

步骤:

​ 1.在App.vue中添加链接

​ 2.在view文件中添加view页面

​ 3.添加 页面之后,需要在rutor中配置路由

4.使用packge.json文件进行运行

路由模式(两种 index.js)

**作用:**用于映射views中的文件和app.vue文件中的关系

两钟都不会刷新整个页面

const router = new VueRouter({
  routes,
 /* mode:"history"*/
})
hash:

不会重新加载页面,不会影响请求资源

​ 浏览器:http://localhost:8080/#/about

​ 实际发送的时候是:http://localhost:8080

history:

会重新加载页面,会影响请求资源

​ 浏览器:http://localhost:8080/about

​ 实际发送的时候是:http://localhost:8080/about,

路由加载的两种模式(index.js)

配置访问路径(映射app.vue中写的)

路由的重定向,使用redirect属性

{
  //配置默认访问的路径
  path: '/',
  //重定向,可以指定另一个组件的path或者name
  redirect:"/home"   //或者redirect:"home"
},
{
  path: '/home',
  name: 'home',
  //页面加载之后,当前视图立即加载
  component: HomeView
},

1.立即加载

​ 页面加载之后,视图立即加载,用于css样式,js脚本

import HomeView from '../views/HomeView.vue'//导入HomeView

,
  {
    path: '/home',
    name: 'home',
    //页面加载之后,当前视图立即加载
    component: HomeView
  },

2.懒加载

​ 按需加载,不访问就不会加载,用于图片和视频

,

  {
    //懒加载,按需加载,如果不访问就不会加载
    path: '/about',
    name: 'about',
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  },

魔法注释

component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')

里面的注释是"魔法注释",webpack做打包使用,不是纯注释,生成的不能进行删除

路由跳转的方式(两种 ,在app.vue配置)

1.使用"router-link"标签进行跳转,这是使用的是组件的方式

​ 该标签会被自动解析成a标签,可以使用tag=""属性将其转化为其他标签

<!--tag:可以指定转化之后的标签类型-->
<router-link to="/">Home</router-link>

2.使用编程的方式进行跳转(两种:name/path)

使用自定义事件进行跳转

<!-- 如果不是组件的方式就使用编程的方式进行跳转-->
<button @click="goPage">学生详情</button>

这种跳转浏览器不允许自己跳转到自己

<script>
export default {
  name: 'StudentView',
  methods: {
    goPage() {
      //如果当前页面不是student,那么才做跳转
      if (this.$route.fullPath !== "/student") {
        this.$router.push({name: "student"})
       // this.$router.push({path: "/student"})
      }
    }
  }
}
</script>
路由命名

1.配置路由的时候,使用name给路由进行命名

const router = new VueRouter({
 routes: [
 {
 path: '/user/:userId',//携带参数,参数在浏览器输入
 name: 'User', // 对路由进⾏命名
 component: () => import(/* webpackChunkName: "user" */ '../views/Use
r.vue')
 }
 ]
})

2.跳转至指定路由页面,并携带参数

fouter.push({name:"user",params:{userId:123}})

3.在组件中使用$route.params.userId获取参数

<script>
export default {
  name: "StudentView",
  created() {
    console.log(this.$route.params.userId);
    //发送请求查询学生信息
  }
}
</script>
query和params传参

区别如下

this.$router.push({name: "User", params: {userId: 123}})
// http://localhost:8081/user/123

this.$router.push({name: "User", query: {userId: 123}}) 
// http://localhost:8081?userId=123

注意:

​ 使用name进行跳转,可以使用params和query进行跳转

​ 当跳转使用的是path,不能使用过params(传的值为undefined),只能携带query文章来源地址https://www.toymoban.com/news/detail-517062.html

到了这里,关于06_Vue-router与综合练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【退役之重学前端】使用vite+vue3+vue-router,重构react+react-router前后端分离的商城后台管理系统

    前言: 对前端各个技术板块,HTML、CSS、JavaScript、ES6、vue家族,整体上能“摸其大概”。笔者计划重构一个基于react的商城后台管理系统。 —— 2024年2月16日 vue3 sass bootstrap ES7 前后端分离 分层架构 模块化开发 npm vite git

    2024年02月20日
    浏览(15)
  • Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式|混入(mixin)|插件)

    Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式|混入(mixin)|插件)

    路由(英文:router)就是对应关系 SPA指的是一个web网站只有一个唯一的一个HTML页面, 所有组件的展示与切换 都在唯一的一个页面内完成。 此时, 不同组件之间的切换 需要通过 前端路由 来实现 总结:在SPA项目中, 不同功能之间的切换 ,要 依赖于前端路由 来完成 通俗移动

    2024年01月22日
    浏览(19)
  • vue-router.esm.js:2248 Error: Cannot find module ‘@/views/dylife/ 报错解决
  • vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation

    vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation

    vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: \\\"/home\\\".   报错原因:重复点击路由导致,因为vue-router引入了promise,当我们使用this.$router.push时候需要多添加成功或失败的回调,否则就会报出以上的错误。 原代码 第一种         在进

    2023年04月08日
    浏览(98)
  • vue-router3.x和vue-router4.x相互影响的问题记录

    vue-router3.x和vue-router4.x相互影响的问题记录

    项目中有一个系统使用的微前端,主站使用是 vue2 实现的,使用的是 vue-router3.x 。子应用有使用 vue3 实现的,使用的为 vue-router4.x 。 该子应用中的页面A有通过操作按钮触发跳转到其他子应用页面B的需求,此时使用的是 vue-router4.x 的编程式导航API。 当通过点击主站的Tab切换回

    2023年04月26日
    浏览(13)
  • 路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由,vue-router的基本用法,vue-router的常见用法$route.params、$router.push、$router.replace、$router.go

    路由(英文: router)就是 对应关系 。 SPA指的是一个web网站只有唯一的一个HTML页面, 所有组件的展示与切换 都在这唯一的一个页面内完成。此时, 不同组件之间的切换 需要通过 前端路由 来实现。 *结论:*在SPA项目中, 不同功能之间的切换 ,要 依赖于前端路由 来完成! 通俗

    2024年01月16日
    浏览(15)
  • 路由vue-router

    路由vue-router

    路由(英文:router)就是 对应关系 SPA 指的是一个 web 网站只有 唯一的一个 HTML 页面 ,所有组件的展示与切换都在这唯一的一个页面内完成。 此时,不同组件之间的切换需要通过前端路由来实现。 结论: 在 SPA 项目中,不同功能之间的切换 ,要依赖于 前端路由 来完成!

    2024年02月07日
    浏览(12)
  • 【Vue-Router】别名

    【Vue-Router】别名

    后台返回来的路径名不合理,但多个项目在使用中了,不方便改时可以使用别名。可以有多个或一个。 First.vue Second.vue , Third.vue 代码同理 UserSettings.vue index.ts App.vue

    2024年02月12日
    浏览(14)
  • vue-router笔记

    目的:为了实现SPA(单页面应用) vue-router是一个插件库 安装: 路由的配置路径:/src/router/index.js 路由组件的目录:/src/pages/ 一般组件的目录:/src/components/ 使用: main.js: App.vue: About.vue: 不可见的路由组件在哪?        被销毁了 嵌套路由的案例: 路由传参: query: 传参

    2024年02月12日
    浏览(18)
  • Uncaught SyntaxError: The requested module ‘/node_modules/.vite/deps/vue-router.js?v=9eef87ba‘

    错误代码 错误提示 浏览器中路由无法显示,提示错误 问题描述 解决方法

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包