$ 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>