利用vue-router的動態路由和路由傳值實現同一模板渲染不同數據

在日常開發中有一種場景非常常見,比如有一百個列表鏈接,點擊鏈接後進入的頁面模板佈局都是一樣的,只是簡單的有些數據不一樣,所以在vue中可以利用vue-router的動態路由和路由傳值實現,具體如下:

1,在配置模板頁面的路由的時候要用動態路由,並開啓props模式:

{
      path:'/auction_detail_index/:id',
      component:auction_detail_index,
      props: true,
},

2,在鏈接跳轉頁面要把id傳給目標模板頁面:

<li v-for="item in index_paimai">
            <div>

//item.to就是要跳轉的模板頁面地址,所不同的是需要傳iid,由於此是異步加載的數據,需要在接口配置中來配置
              <a :href="item.to">
                <img :src="require('../assets/img/project1.png')" alt="">
              </a>
            </div>
          </li>

//接口配置中來配置如下:(/0就是要傳的id)

"to":"auction_detail_index/0"

這一步配置完後點擊就會跳轉到同一模板的相應的動態路由頁面(比如點擊上面的src就會跳轉到auction_detail_index/0頁面,其實是同一模板頁面auction_detail_index)

3,跳轉後需要在auction_detail_index頁面接收這個傳過來的id:

export default {

//利用props接收id
  props:['id'],
  created(){
    this.$http.get('api/auctions').then(
        (res)=>{

        //在created鉤子函數中利用id獲取異步加載的數據
          let detail_num=res.data.data.details[this.id]
          console.log(detail_num)
          this.detail_top=detail_num
        },
        (error)=>{
          console.log(error)
        }
      ),

  }

4,接口配置,在配置的時候要配置成數組套數組的模式:(不能寫成數組套對象模式)

"auctions":{
    "details":[
      [{
        "bianhao":"#000001",
        "title1":"世紀大戰拍賣會專場",
        "title2":"2020年10月05日 上午10:30-下午6:00"
      }],
      [{
        "bianhao":"#000002",
        "title1":"無以倫比的一次慈善拍賣",
        "title2":"2020年10月05日 上午10:30-下午6:00"
      }]
    ]
  }

ok到此就實現了同一模板渲染不同數據的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章