什么叫前后端分离:
前端和后端分离开
前端: 将浏览器中为用户进行页面展示的部分称之为前端
后端: 为前端提供业务逻辑和数据准备的所有代码统称为后端
前后端分工:
前后端开发工作的分工就是前后端分离。 前后端分工;(错误的认识)
真的前后端分离:
不仅仅是前端和后端的分工开发,而是架构的模式
(1)交互模式 --restful
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f17FBPMI-1577779405832)(笔记.assets/image-20191231092731114.png)]
(2)代码层次–代码仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SxsZYteD-1577779405843)(笔记.assets/image-20191231093330782.png)]
(3)开发模式–人员分配 (理解)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ARGAqoWB-1577779405845)(笔记.assets/image-20191231094408983.png)]
现在我们开发 第三个 第四个 :(全栈工程师)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MynNKPVf-1577779405847)(笔记.assets/image-20191231094654490.png)]
(1) 专业的人做专业的事情
(2) 提高开发效率 --并行开发
(3) 应对复杂多变的需求
(4) 提高维护性
(5) 成本高 有钱人做的
省略 --和昨天一样
1)创建一个web项目
2)vue init webpack
3)npm run dev
Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,网站快速成型的工具 类似easyui layui
1)安装 : npm i element-ui -S
2)在main.js 引入:
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
3)组件
测试elementui的组件
layout message
container tree
button …
dialog
table
form
tabs
alert
为什么需要模拟数据?
主要针对前端人员 , 前端没有后台的数据,需要模拟进行测试
使用mockjs:
(1)安装
npm install mockjs
(2)测试
新创建一个js文件:
// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
name: {
first: '@FIRST',
middle: '@FIRST',
last: '@LAST',
full: '@first @middle @last',
email:'@email',
ip:'@ip'
}
})
// 输出结果
console.log(JSON.stringify(data, null, 4))
3)运行 node demo
axios类似 ajax ,封装promise(异步请求)
安装:
npm install axios --save
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMv2v0WO-1577779405849)(笔记.assets/image-20191231153231852.png)]
注意:
main.js引入文件
import axios from 'axios'
import userMock from '../userMock'
//配置axios的全局基本路径 t
axios.defaults.baseURL=''
//全局属性配置,在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios
1)发送请求:
getUsers(){
let params = {
page:this.page
}
//发送请求 controller {data:[],total:100}
this.$http.post('/user/list',params).then(res=>{
console.log("-------------------res.data {data: total}");
console.log(res);
this.users = res.data.data;
this.total = res.data.total;
})
}
2)被mock拦截(了解)
Mock.mock(new RegExp('/user/list'),'post',(opts) => {
//赋值
var list =dataList;
console.log(opts.body) ;// "{page:2}"
//json字符串转换成JSON对象
var index = JSON.parse(opts.body).page; //2
//每页条数
var size = 10;
//公共的条数
var total = list.length
//分页方法
list = pagination(index, size, list);
return {
'total': total,
'data': list
}
})
arse(opts.body).page; //2
//每页条数
var size = 10;
//公共的条数
var total = list.length
//分页方法
list = pagination(index, size, list);
return {
'total': total,
'data': list
}
})