2022年3月18日

vue-router(学习笔记)

作者 admin
1.静态路由-写死不需要改变部分。
<template>
  <div>
   <banner/>
  </div>
<template>

  import Banner from './components/Banner'
   export default {
     name:'App',
     components:{Banner}
   }

-------------------------------------------

2.动态路由---由配置进行动态切换显示。

<router-link to="/about"> 跳转about组件,
 <router-view></router-view>指定组件的呈现位置

--------------------------------

3.query: 

Message.vue

<router-link :to="{
                    path:'/home/message/detail',
//路由命名:  name:'xiangqing',
                    query:{
                        id:m.id,
                        title:m.title
                    }

                }">跳转到detail详情并且传递query参数内容
                </router-link>


detail.vue
 //获取query
<li>消息编号:{{$route.query.id}}</li>
<li>消息标题:{{$route.query.title}}</li>
----------------------------------------------

4.路由可通过props传递,
router/index.js

{
                    path:'message',
                    component:Message,
                    children:[
                        {
                            name:'xiangqing',
                            path:'detail',
                            component:Detail,

                            //props的第一种写法,值为对象,该对象中的所有key-value都会以props的形式传给Detail组件。
                            // props:{a:1,b:'hello'}

                            //props的第二种写法,值为布尔值,若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件。
                            // props:true

                            //props的第三种写法,值为函数
                            props($route){
                                return {
                                    id:$route.query.id,
                                    title:$route.query.title,
                                    a:1,
                                    b:'hello'
                                }
                            }

                        }
                    ]
                }
deaail.vue

<template>
    <ul>
        <li>消息编号:{{id}}</li>
        <li>消息标题:{{title}}</li>
    </ul>
</template>
<script>
    export default {
        name:'Detail',
        props:['id','title'],
    }
</script>

备注:<router-link>若通过params传递,则需要使用name而不是path。