vue-金沙1005

vue-router 详解「建议收藏」文章目录1、认识vue-router2、安装和使用vue-router1、认识vue-router目前前端流行的三大框架,都有自己的路由实现:angular的ngrouterreact的reactroutervue的vue-routervue-router是vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。我们可以访问其官方网站对其进行学习:https://router.vuejs.org/zh/vue-router是基于路由和组件的路由用户设定访问


1、认识vue-router

目前前端流行的三大框架,都有自己的路由实现:

  • angular的ngrouter
  • react的reactrouter
  • vue的vue-router

vue-router是vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。
我们可以访问其官方网站对其进行学习:

vue-router是基于路由和组件的

  • 路由用户设定访问路径的,将路径和组件映射起来。
  • 在vue-router的单页面应用中,页面的路径的改变就是组件的切换

2、安装和使用vue-router

第一步:安装vue-router
npm install vue-router --save

第二步:在模块化工程中使用它(因为是一个插件,所以可以通过vue.use()来安装路由功能)

  • 导入路由对象,并且调用vue.use(vuerouter)
  • 创建路由实例,并且传入路由映射配置
  • 在vue实例中挂载创建的路由实例

使用vue-router的步骤:

  • 第一步:创建路由组件
  • 第二步:配置路由映射:组件和路径映射关系
  • 第三步:使用路由:通过

代码实现步骤:

  • 创建router实例
    在这里插入图片描述
  • 挂载到vue实例中
    在这里插入图片描述
  • 第一步:创建路由组件
    在这里插入图片描述
  • 第二步:配置组件和路由的映射关系
    在这里插入图片描述
  • 第三步:使用路由
    在这里插入图片描述
    :该标签是一个vue-router中已经内置的组件,他会被渲染成一个

3、路由的默认路径

默认情况下,进入网站的金沙1005首页,我们希望渲染金沙1005首页的内容。
但是我们的实现中,默认没有显示金沙1005首页组件,必须让用户点击才可以。

如何可以让路径默认跳转到金沙1005首页,并且渲染金沙1005首页组件呢?
我们需要多配置一个映射就可以了

{ 
   
  path: '/',
  redirect: '/home'
},
vue-router 详解「建议收藏」

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

配置解析:

  • 我们在routes中又配置一个映射
  • path配置的是根路径:/
  • redirect是重定向,也就是我们将根路径重定向到/home的路径下,这样就可以得到我们想要的结果了。

4、html5的history模式

改变路径的方式有两种:

  • url 的 hash
  • html5 的 history
  • 默认情况下,路径的改变使用的url的 hash

如果希望使用html5的history模式,进行如下的配置:

在这里插入图片描述

5、router-link属性介绍

  • to:用于指定跳转的路径
  • tag:tag可以指定之后渲染成什么组件,比如我们下面的代码会被渲染成一个
  • 元素,而不是

6、路由代码跳转

有的时候,页面的跳转可能需要执行相应的javascript代码,这个时候,就可以使用第二种跳转方式了。

比如我们将代码修改如下:

在这里插入图片描述

7、动态路由

在某些情况下,一个页面的path路径可能是不确定的,比如我们进入用户界面时,希望是如下的路径:

  • /user/aaa或/user/bbb
  • 除了有前面的/user之外,后面还跟上了用户的id
  • 这种path和component的匹配关系,我们称之为动态路由(也是路由传递数据的一种方式)
    在这里插入图片描述

8、路由懒加载

路由懒加载的方式

  • 方式一:结合vue的异步组件和webpack的代码分析
    const home = resolve => { require. ensure(['../ components/home.vue'], () => { resolve(require('../ components/home.vue')) })};
  • 方式二:amd写法
    const about = resolve => require([' ../ components/ about.vue'], resolve);
  • 方式三:在es6中,我们可以有更加简单的写法来组织vue异步组件和webpack的代码分割
    const home = () => import(' . ./ components/home.vue ' )

路由懒加载的效果
在这里插入图片描述

9、嵌套路由实现

在这里插入图片描述

10、传递参数的方式

传递参数主要有两种类型:params和query

  • params的类型:
    • 配置路由格式:/router/:id
    • 传递的方式:在path后面跟上对应的值
    • 传递后形成的路径:/router/123,/router/abc
  • query的类型:
    • 配置路由格式:/router,也就是普通配置
    • 传递的方式:对象中使用query的key作为传递方式
    • 传递后形成的路径:/router?id= 123,/router?id=abc

11、导航守卫的使用

我们可以利用beforeeach来完成标题的修改

  • 首先,我们可以在钩子当中定义一些标题,可以利用mate来定义
  • 其次,利用导航守卫修改我们的标题

导航钩子的三个参数解析:

  • to:即将要进入的目标的路由对象
  • from:当前导航即要离开的路由对象
  • next:调用该方法后,才能进入下一个钩子

在这里插入图片描述
如果是后置钩子,也就是aftereach,不需要主动调用next()函数。

上面我们使用的导航守卫,被称之为全局守卫。

12、tabbar实现思路

  1. 如果在下方有两个单独的tabbar组件,你如何封装
    自定义tabbar组件,在app中使用
    让tabbar处于底部,并且设置相关的样式
  2. tarbar中显示的内容由外界决定
    定义插槽
    flex布局平分tabbar
  3. 自定义tarbaritem,可以传入图片和文字
    定义tabbaritem,并且定义两个插槽:图片、文字。
    给两个插槽外层包装div,用于设置样式。
    填充插槽,实现底部tabbar的效果。
  4. 传入高亮图片
    定义另外一个插槽,插入active-icon的数据
    定义一个变量isactive,通过v-show来决定是否显示对应的icon
  5. tabbaritem绑定路由数据
    安装路由:npm install vue-route –save
    完成router/index.js的内容,以及创建对应的组件
    main.js中注册router
    app中加入组件
  6. 点击item跳转到对应路由,并且动态决定isactive
    监听item的点击,通过this.$router.replace()替换路由路径
    通过this.$route.path.indexof(this.link) !== -1来判断是否是active
  7. 动态计算active样式
    封装新的计算属性:this.isactive ? {'color': 'red'}:{}

效果图:

在这里插入图片描述


如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客
js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/128376.html

(0)

相关推荐

  • vue前端路由和后端路由_vue默认路由使用vue.js,我们已经可以通过组合组件来组成应用程序。我们需要做的是,将组件映射到路由,然后告诉vue-router在哪里渲染它们。

  • vue前端优化性能的方法_vue前端性能优化代码层面、webpack层面、web技术层面:vue项目性能优化:

  • vue打包指定目录_vue项目打包新接手vue项目,因为项目需要,我们要按照之前的项目结构打包,vue自动生成的打包目录结构不符合要求。1.dist目录不能用,导致每次打包需要将dist文件夹重新命名,如果要修改打包后文件的目录,需要修改“config/index.js”可以修改为:这样在你的代码目录下生成一个package的文件夹,“package/xxx”就是打包生成后的文件内容。2.默认的vue打包生成后,只有一个index.html和static文件夹,但是往往因为我们项目的需要,要在static同级目录下放

  • vue-router 基础:几种路由守卫方式前言《vue 基础》系列是再次回炉 vue 记的笔记,除了金沙1005官网那部分知识点外,还会加入自己的一些理解。

  • vue响应式源码_响应式 最佳实践关于 proxy 的基础知识,可以去mdn学习直达链接。 本文将实现响应式的核心函数命名为 reactive, 这个函数返回一个被代理之后的结果,可以通过操作这个返回结果来触发响应式。 首先,给出测试数据:一个有 name 属性的对象 obj,我们希望经过 reactive 函…

  • vue打包时gzip压缩的两种方案「建议收藏」开局一张图:可以看出,在项目部署后,我们的资源文件请求都会保持原本大小,如果文件过大,并且很多的情况下,会导致网络请求耗时,严重点可能阻塞后面的进程。所以,此篇介绍两种gzip压缩的方式:1、打包的时候通过webpack配置生成对应的.gz文件,浏览器请求xx.js/css等文件时,服务器返回对应的xxx.js.gz文件;2、浏览器请求xx.js文件时,服务器对xx.js文件进行gzip压缩后传输给浏览器。webpack打包生成gz文件安装插件(compression-webpack-

    2022年10月15日
  • vue项目启动命令配置_vue怎么启动1、安装node和npm2、创建vue项目#全局安装vue-cli$cnpminstall–globalvue-cli#创建一个基于webpack模板的新项目$vueinitwebpackmy-project#这里需要进行一些配置,默认回车即可3、项目内配置npm$cdmy-project$cnpminstall4、…

  • vue的性能优化「建议收藏」vue性能优化1.v-for遍历必须为每个item添加key,并且避免在v-for中使用v-if2.阻止数据劫持3.vue组件中的data返回一个函数而非是一个对象4.并不需要将所有的数据都放在data中5.v-for元素通过事件代理绑定到父元素上vue是一套用于构建用户界面的渐进式的javascript框架。具有体积小,更高的运行效率,双向数据绑定,生态丰富、学习成本低等优点,所以vue也被广泛用在移动端跨平台框架上。vue框架通过数据双向绑定和虚拟dom技术,帮我们处理了前

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图