安装环境
文章内,图片很多,占据了一定的篇幅。有写后台的哥们说,vue 怎么写,怎么新建一个 vue 项目,然后我想了想,觉得写一个面向后台同学的 vue 教程也是有必要,文章中几乎没讲 css 和 vue 细节处理的相关内容,减少接受不必要的信息量,降低 vue 的学习成本。如果有不清楚的地方,可以私信联系我,有不对不合理之处,敬请指出!我是迩伶贰!
1. 安装 nodejs 环境
- 下载地址:(nodejs)[https://nodejs.org/zh-cn/down…]
- 安装(略)
2. 安装 vue-cli 系列工具
- npm install -g @vue/cli
- npm install -g @vue/cli-service-global
3. vue create hello-world // 用 vue 初始化 hello-world 项目
3.1 vue create hello-world
3.2 跑起项目 npm run serve
很多后端同学的用的编辑器是 idea, 我这里也用 idea 演示这个, 细节之处不是本文的重点,可查看 idea 创建 vue 项目
打开刚才初始化后的项目】
配置启动脚本,相对于配置 java 的脚本要简单的多
启动:
访问地址
3.3 项目目录介绍:
- node_modules , 项目依赖的模块包,我们需要的模块包都会下载到这个目录下,我们开发时不用管
- public 静态文件放的位置,放一下大的静态文件
-
src 项目的源文件
- assets 小的静态文件
- components 组件,一些公用的组件,比如登录框,输入组件等
- APP.vue vue 项目的根组件
- main.js 项目的主入口文件,一些需要的基本的 js css 可在这里引入
- package.json 项目依赖、介绍、基本配置等的清单文件,我们只需要看,scripts 里面的执行命令即可,比如 serve -> 启动,build -> 构建打包
- 其他 项目运行配置文件,可忽略
Tips:上面的内容了解即可,可不用深入,继续往下添加页面路由
4. 增加路由 vue-router
4.1 安装路由 npm install vue-router -S
使用
4.2 在项目文件夹下新建 router.js
4.3 写入代码
import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from './components/HelloWorld';
Vue.use(Router);
export default new Router({
mode:'history',
routes: [
{
path: '/helloworld',
name: 'HelloWorld',
component: HelloWorld
}
]
})
4.4. 新建 page 文件夹,文件夹下面的都是为页面 .vue 文件
4.5 修改 router.js
import Vue from 'vue';
import Router from 'vue-router';
import HelloWorld from './components/HelloWorld';
import Index from './page/index';
import List from './page/list';
Vue.use(Router);
export default new Router({
mode:'history',
routes: [
{
path: '/helloworld',
name: 'HelloWorld',
component: HelloWorld
},
{
path: '/index',
name: 'Index',
component: Index
},
{
path: '/list',
name: 'List',
component: List
},
]
})
访问路由:
5. 增加 axios,http 请求库 (https://www.kancloud.cn/yunye…
5.1 安装库 axios , npm install axios -S
5.2 使用
以上面的 list.vue 文件为例:
<template>
<div>
<h3> 这是一个 list 页面 </h3>
<ul>
<li>
<router-link to="/index">Index</router-link>
</li>
</ul>
<h3> 下面是 axios 请求到到数据 </h3>
<ul v-if="userList.length">
<li v-for="item in userList" :key="item.id">
姓名:{{item.name}}
</li>
</ul>
<ul v-if="!userList.length">
loading....
</ul>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: "Index",
data(){
return {userList: []
}
},
created () {axios('http://localhost:4000/get/alluser')
.then(res => {this.userList = res.data.users;})
}
}
</script>
<style scoped>
ul li {
list-style: none;
font-size: 16px;
}
</style>
6. 增加脚手架可配置文件 vue.config.js
设置接口的跨域,vue-cli 启动的服务端口等
module.exports = {
devServer: {
port: 8090,
proxy: 'http://localhost:4000'
}
}
7. 打包项目
7.1 执行命令 npm run build
7.2 构建结果
会在项目目录下生成 dist 文件夹,文件夹下的文件就是我们需要的静态文件
我们把打包后的静态文件扔进服务器即可,或者我们用 ngxix 部署静态文件,index.html 就是最终指向的入口文件。