Nuxt的路由配置和参数传递

学习前端框架都要学习路由机制,因为路由可以体现我们的业务逻辑,把模块串联起来,让程序换发光彩。那简单的说路由就是我们的跳转机制,也可以简单理解成链接跳转。Nuxt.js的路由并不复杂,它给我们进行了封装,让我们节省了很多配置环节。

简单路由Demo
我们现在在根目录的pages文件下新建两个文件夹,about和news(模仿关于我们和新闻的功能模块)

在about文件夹下新建index.vue文件,代码如下:

<template> 
    <div> 
        <h2>About Index page</h2> 
        <ul> 
            <li><a href="/">Home</a></li> 
        </ul> 
    </div> 
</template>

在news文件夹下新建index.vue文件,代码如下:

<template> 
    <div> 
        <h2>News Index page</h2> 
        <ul> 
            <li><a href="/">Home</a></li> 
        </ul> 
    </div> 
</template>

修改原来的pages文件夹下的index.vue,删除没用的代码,写入下面链接代码:

<template>
  <section class="container">
    <div>
      <!-- <logo/> -->
      <h2>首页</h2>
      <ul>
        <!-- <a href="/">home</a> 使用a标签在组件的页面中这样写相当于刷新当前页面 -->
        <li><a href="/">home</a></li>
        <li><a href="/about">about</a></li>
        <li><a href="/news">news</a></li> 
      </ul>
    </div>
  </section>
</template>

<script>

export default {
  components: {
    
  },
  data() {
    return {
 
    }
  }
}
</script>

<style>

</style>

结果如下:

 

<nuxt-link>标签
虽然上面的例子跳转已经成功,但是Nuxt.js并不推荐这个中<a>标签的作法,它为我们准备了<nuxt-link>标签(vue中叫组件)。我们<a>标签替换成<nuxt-link>

about文件夹下新建index.vue

<template> 
    <div> 
        <h2>About Index page</h2> 
        <ul> 
            <!-- vue中视图路由的方式实现路由 -->
            <li><nuxt-link :to="{name:'index'}">Home</nuxt-link></li> 
        </ul> 
    </div> 
</template>

news文件夹下新建index.vue

<template> 
    <div> 
        <h2>News Index page</h2> 
        <ul> 
            <!-- vue中简单方式实现路由 -->
            <li><nuxt-link to="/">Home</nuxt-link></li> 
        </ul> 
    </div> 
</template>

pages文件夹下的index.vue

<template> 
    <div> 
        <ul> 
            <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li> 
            <li><nuxt-link to="/about">ABOUT</nuxt-link></li> 
            <li><nuxt-link to="/news">NEWS</nuxt-link></li> 
        </ul> 
    </div> 
</template> 
<script>
export default {
}
</script> <style>

</style>

params传递参数

路由经常需要传递参数,我们可以简单的使用params来进行传递参数,我们现在向新闻页面(news)传递个参数,然后在新闻页面进行简单的接收。

我们先修改pages下的index.vue文件,给新闻的跳转加上params参数,传递3306ID。

<template> 
    <div> 
        <ul> 
            <li><nuxt-link :to="{name:'index'}">HOME</nuxt-link></li> 
            <li><nuxt-link to="/about">ABOUT</nuxt-link></li> 
            <li><nuxt-link :to="{name:'news',params:{newsObj:newObj}}">NEWS</nuxt-link></li> 
        </ul> 
    </div> 
</template> 
<script>
export default {
    data() {
        return {
            newObj:{}
        }
    }
}
</script> <style>

</style>

在news文件夹下的index.vue里用$route.params.newsId进行接收(路由传参的接收方式与vue.js的接收方式基本相似),代码如下。

<template>
  <div>
      <h2>News Index page</h2>
      <p>NewsID:{{$route.params.newsId}}</p>
       <ul>
        <li><a href="/">Home</a></li>
      </ul>
  </div>
</template>

动态路由传值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值