学习Vue Router,这一篇足够

本文介绍Vue Router的基本使用方法,包括安装、配置路由、组件映射、动态路由、嵌套路由及编程式导航等内容。

前言

Demo代码
Vue Router 是Vue.js的官方路由管理器。使用Vue Router 后,我们就想玩积木一样组合组件完成应用开发,基本思想:将组件映射路由,告诉Vue Router 在哪里渲染就阔以了。

基本使用步骤

安装 Vue Router

npm install vue-router

src目录下创建router/index.js文件,并注册路由

import vue from 'vue'
import vueRouter from 'vue-router'

// 1.注册路由插件
vue.use(vueRouter)

映射路由和组件

// 2.映射组件和路由
let routes = [
    { path: '/', component: Home },
    { path: '/about', component: () => import(/* webpackChunkName: "about" */'../views/about.vue')}
]

创建router

// 3.创建router对象,传入routes
const router = new vueRouter({
    routes
})

export default router

main.js文件创建vue对象时,将router注册

import router from './router'
new Vue({
  // 4.注册router
  router,
  
  render: h => h(App),
}).$mount('#app')

app.vue文件,设置路由入口和出口

 <!-- 5.使用 router-link导航-->
 <router-link to = "/">home</router-link>
 <router-link to = "/about">about</router-link>
 <!-- 6. router-view 设置路由出口-->
 <router-view></router-view>

动态路由

有时间我们需要将某种规则的路由匹配到一个组件中,比如:任务简介组件(About.vue),对于所有不同id的用户都应该对应About组件,像/about/123/about/134都应该映射到同一个About组件中。

动态路径参数 以冒号:做标记

  {
    path: '/about/:id',
    name: 'About',
    // props为true时,接收参数使用props
    props: true,
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  }

如何获取动态路径参数?

  • 通过$route.params对象获取
  • 通过路由设置props后,使用props获取
<!-- 第一种方式:$route.params -->
<div>id的值: {{$route.params.id}}</div>

<!-- 第二种方式 props -->
<div>id的值: {{id}}</div>

<script>
export default {
  name: "About",
  props: ["id"],  
}
</script>

嵌套路由

路由嵌套
在页面开发中,home页面和about页面头部(header)和底部(footer)内容一致,只有中间区域不同,在这种情况下,就会用到嵌套路由。

首先将定义一个总的布局组件Layout.vue,中间部分根据不同路由渲染不同的组件。
路由配置:

const routes = [
  {
    path: '/',
    name: 'Layout',
    component: Layout,
    children:[{
        // 相对路径
        path: '',
        name: 'Home',
        component: Home
      },
      {
        path: 'about',
        name: 'About',
        component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
      }
    ]
  },
  {
    path: '/login',
    name: 'Login',
    component: Login
  }
]

在app.vue 和 Layout.vue公共部分使用router-view占位
app.vue

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

Layout.vue

<template>
  <div>
    <div>
      <img width="25%" src="@/assets/logo.png">
    </div>
    <div>
      <router-view></router-view>
    </div>
    <div>
      Footer
    </div>
  </div>
</template>

编程式导航

除了使用<router-link>定义导航链接,还可以借助router的实例方法。下面分类介绍一下:
不带参数导航

// 字符串
this.$router.push('about');

// 对象-path
this.$router.push({path:'about'})

//对象-name
this.$router.push({name:'About'})

// router-link
<router-link to='about'>router-link</router-link>

动态路由

// push-name
this.$router.push({name: 'Dynamic', params: { id: '123' }})

// router-link
<router-link to='/dynamic/123'>router-link</router-link>

// router-link-params
<router-link :to="{ name: 'Dynamic', params: { id: 123 }}">router-link-params</router-link>

带查询参数

// 带查询参数,变成query?name=query-router
this.$router.push({path: 'query', query : { name: "query-router"}})  
this.$router.push({name: 'Query', query : { name: "query-router"}})

Hash模式和History模式的区别

Hash模式
基于锚点以及onhashchange事件。将锚点的值(URL中#后面的值)作为路由地址,当锚点的值发生变化时,监听onhashchange事件,根据当前路由地址映射对应的组件。

History模式
history模式是基于HTML5的History API。

  • 通过history.pushState() 方法改变地址栏。
  • 监听popState()事件
  • 根据当前路由地址映射对应的组件

history.pushState()方法,IE10以后才支持 。低版本的使用history.replaceState()。

当刷新页面时,页面会向浏览器发送请求,在单页面中会存在找不到页面情况。因此实现history模式,需要浏览器的支持,在服务器端除了静态资源外,都返回单页面的index.html文件。

基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值