$ vue init nuxt-community/koa-template <project-name> $ cd <project-name> $ npm run dev <!-- 1. 若是有报错: Plugin/Preset files are not allowed to export objects, only functions 须要下降nuxt版本至1.4.2: npm uninstall nuxt npm install nuxt@1.4.2 2. 升级eslint-plugin-html $ npm i eslint-plugin-html@^3 -->
(建立即配置)在pages目录中新建一个vue文件,即成功建立了路由,文件名也就是路由名称。css
layouts 目录下的全部文件都属于个性化布局文件,能够在页面组件中利用 layout 属性来引用。
请确保在布局文件里面增长
举个例子:html
新建:layouts/search-layout.vue:vue
<template> <div> <h1>search page</h1> <nuxt/> <footer>这是一个自定义的只用于search的模板</footer> </div> </template> <script> export default { } </script>
在 pages/search.vue 里, 能够指定页面组件使用 search-layout 布局。ios
<template> <div> <h2>search page</h2> </div> </template> <script> export default { layout: 'search-layout' } </script>
这里面定义了全部页面的head title 和main.css 。。。等git
import Router from 'koa-router' const router = new Router({ prefix: '/city' }) router.get('/list', async (ctx) => { ctx.body = { list: ['北京', '上海', '菏泽'] } }) export default router
import Koa from 'koa' import { Nuxt, Builder } from 'nuxt' // 引入新建接口路由 import cityInterface from './interface/city'
// 使用新建接口路由 app.use(cityInterface.routes()).use(cityInterface.allowedMethods())
访问:http://localhost:3000/city/list 验证是否成功github
<template> <div> <h2>search page</h2> <ul> <li v-for="(item, index) in list" :key="index"> {{item}} </li> </ul> </div> </template> <script> import axios from 'axios' export default { layout: 'search-layout', data() { return { list: ['11', '22', '33'] } }, async mounted() { let res = await axios.get('/city/list') console.log(res) this.list = res.data.list } } </script>