1. nuxt项目初始化报错

  • 下面是使用 koa 模板方法初始化一个项目,使用该方法需要将 nuxt 的版本降至1.4.2;
  • 官方 https://zh.nuxtjs.org/guide/installation 还要提供了脚手架工具,可用使用最新的nuxt2.0版本初始化一个项目。
$ 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
-->


在server文件夹中定义koa2的路由信息,并且在server/index中挂载注册路由信息;
在layouts文件夹中定义模板文件;在pages文件夹下编辑前端页面;

2、使用layout模板

例如在layouts文件夹中设置search模板
<template>
<div>
<nuxt/>
<my-footer/>
</div>
</template> <script>
import MyFooter from '../components/Footer.vue' export default {
components: {
MyFooter
}
}
</script>

这里注意 <nuxt>相当于 vue-router 中的

<!-- 对应的组件内容渲染到router-view中 -->
<router-view></router-view>

然后在 page 文件中 引入该模板:

<script>
export default {
layout:'search',
}
</script>

3、自己定义接口并获取接口

定义接口在koa-router,获取接口数据在page vue中:

在server/interface/city 文件下,设置接口信息

const router = require('koa-router')()
router.prefix('/city')
router.get('/list', (ctx) => {
ctx.body = {
list:['北京','天津']
}
})
module.exports = router

然后在server/index.js文件下挂载注册:

const city = require('./interface/city')

app.use(city.routes(), city.allowedMethods())

以上为服务器端接口设置,接下来是前端页面请求数据:

<template>
<div>
<ul>
<li v-for="(item,idx) in cities" :key="idx"> {{item}} </li>
</ul>
</div>
</template>
<script>
import axios from 'axios'
export default {
layout:'search',
data(){
return {
cities:[]
}
},
// async mounted() { //该方法是前端渲染页面
// let cities;
// let {status,data} = await axios.get('/city/list');
// console.log(data.list); //在浏览器端出现
// if(status == 200){
// this.cities = data.list
// }
// },
async asyncData() { //再render之前 获取异步数据 是服务器端渲染页面
let cities;
let {status,data} = await axios.get('http://localhost:3000/city/list');//由于是服务端渲染,需写全路径
console.log(data.list);//在服务器端出现
if(status == 200){
return {
cities:data.list //return返回data同名数据
}
}
}
}
</script> <style scoped> </style>

4. 引入vuex 框架

注意引入vuex 使用普通方式的状态树,需要添加 store/index.js 文件,并对外暴露一个 Vuex.Store 实例:

import Vue from 'vue';
import Vuex from 'vuex';
import citys from './modules/city'
import navbars from './modules/navbar' Vue.use(Vuex)//安装注册vuex const store = () => new Vuex.Store({//实例话vuex,并引入两个vuex定义的函数
modules:{
citys,
}
})
export default store

如上所示,需要实例化 vuex再抛出,和之前直接抛出 vuex的不一样。

5 见文章    Nuxt开发经验分享,让你踩少点坑

 

vue全家桶+Koa2开发笔记(5)--nuxt的更多相关文章

  1. vue全家桶+Koa2开发笔记(6)--app开发

    1.环境配置 详见文章<Nuxt 开发 - 项目初始化> 1.1  使用nuxt脚手架  https://zh.nuxtjs.org/guide/installation 1.2 在nod ...

  2. vue全家桶+Koa2开发笔记(7)--登陆注册功能

    1 文件结构:pages中放置页面代码:server 分为 dbs 和interface两个文件夹: dbs设置有关数据库的代码:interface设置接口信息: 2.2 先看dbs的,在dbs的配置 ...

  3. vue全家桶+Koa2开发笔记(2)--koa2

    1. 安装koa脚手架的时候 执行命令 koa2 -e koa-learn 注意要使用-e的方式,才会生成ejs的模板 2. async await的使用方法:存在的意义:提高promise的可读性 ...

  4. vue全家桶+Koa2开发笔记(8)--开发网页

    1.使用 mongoose 动态倒入数据 mongoimport -d student -c areas areas.dat -d 后面是数据库名称: -c后面是表名称 最后是数据源 2.使用vue的 ...

  5. vue全家桶+Koa2开发笔记(1)--vuex

    1.  安装webpack的问题: webpack坑系列--安装webpack-cli 2.  vue-cli(vue脚手架)超详细教程 3.  在命令行中使用 touch 执行新建文件: 4.  关 ...

  6. vue全家桶+Koa2开发笔记(4)--redis

    redis用来在服务器端存放session 1 安装redis    brew install redis 启动redis   redis-server 2 安装两个中间件  npm i koa-ge ...

  7. vue全家桶+Koa2开发笔记(3)--mongodb

    1. 安装 momgodb brew install mongodb安装成功后执行 which mongod启动:mongod 2. 下载可视化操作数据库的软件 https://robomongo.o ...

  8. Vue 全家桶 + Electron 开发的一个跨三端的应用

    代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...

  9. [在线+源码]vue全家桶+Typescript开发一款习惯养成APP

    # vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript编写的模仿原生应用的WebApp. [源码地址](https://github.com/xiaomuzhu/vue ...

随机推荐

  1. html页面标题增加图标方法

    有些网站的网页标题部分有图标,很带感.方法很简单: 在<head></head>部分增加下列一行代码即可. <link rel="shortcut icon&q ...

  2. 【资料收集】PCA降维

    重点整理: PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法 1.原始数据: 假定数据是二维的 x=[2.5, 0.5, 2.2, 1. ...

  3. maven scope和项目发布需要注意的地方

    Maven Scope的使用: http://www.cnblogs.com/wangyonghao/p/5976055.html servlet-api和jsp-api等jar包,一般由servle ...

  4. 5.8 C++重载自增与自减操作符

    参考:http://www.weixueyuan.net/view/6386.html 注意: 自增“++”与自减“--”都是一元操作符,其前置和后置两种形式都可以被重载. 前置 stopwatch ...

  5. 干货分享!DevExpress v17.1最新版帮助文档下载大全

    DevExpress v17.1.5帮助文档下载列表大全来啦!包含.NET.VCL.HTML/JS系列所有帮助文档,提供CHM和PDF两个版本.除已停止更新的Silverlight.Windows 8 ...

  6. 数据结构~trie树(字典树)

    1.概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. 我理解字典树是看了这位大佬博客.还不了解字典树的 ...

  7. leetcode第26题:删除排序数组的重复项

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 给定数组 ...

  8. mysql 数据库关于增加用户权限的问题

    一新建用户 ----------- 二首先修改权限必须在电脑cmd 中运行 开设的权限  主要就是 1 所有库的  *.*      2  所有的表   db.*      3所有的字段db.t1   ...

  9. ubantu 设置默认python3.叽叽叽的环境变量

    wkp 发表于 2017-8-22 17:49:08 | 只看该作者 sudo vi ~/.bashrc 在里面加一句 alias python='python3' 或者再简单一点 alias p=' ...

  10. IE9中input事件与异步事件连用会发生跨域问题

    IE版本中IE8以及IE9以上版本不会存在这个问题唯独IE9 发生跨域问题代码 $("#stock_code").bind("input",function(e ...