VUE前后台分离
配置js环境
jQuery
>: cnpm install jquery
vue/cli 3 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建)
const webpack = require("webpack");
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
BootStrap
>: cnpm install bootstrap@3
vue/cli 3 配置BootStrap:在main.js中配置
import "bootstrap"
import "bootstrap/dist/css/bootstrap.css"
分离的前后台交互
后台跨域处理
安装插件
>: pip install django-cors-headers
插件参考地址:https://github.com/ottoyiu/django-cors-headers/
项目配置:dev.py
# 注册app
INSTALLED_APPS = [
...
'corsheaders'
]
# 添加中间件
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
]
# 允许跨域源
CORS_ORIGIN_ALLOW_ALL = True
总结
"""
1、vue项目配置全局css文件:在main.js中用import导入或是require()加载 .css 文件
assets/css/global.css
import '@/assets/css/global.css' | require('@/assets/css/global.css')
2、vue项目配置全局js文件:在main.js中用import导入 .js 文件,并将其设置给 Vue 原型
settings.js => export default {base_url='http://127.0.0.1:8000'}
import settings from '@/assets/js/settings.js'
Vue.prototype.$settings = settings => this.$settings.base_url
3、vuex提供的store仓库存储,可以完成组件间的传参(了解)
store/index.js => state: {num: 0}
this.$store.state.num
4、vue项目配置axios可以完成前后台交互:this.$axios({}).then(response=>{}).catch(error=>{})
import axios from 'axios'
Vue.prototype.$axios = axios
this.$axios({
url: '后台接口',
method: 'get|post',
params: {},
data: {},
headers: {},
}).then(response=>{
response.data
}).catch(error=>{
error.response.data
})
5、django利用django-cors-headers插件解决前后台分类项目跨越问题(重点)
注册corsheaders => 添加中间件 => 允许跨越
6、前台两种提交数据的方式:url拼接参数,数据包参数
7、前后台分离,后台登录通过的token会返回给前台,前台自己处理存储在cookie中:vue-cookies插件操作cookie
token = response.data.token
this.$cookies.set(k, v, exp);
this.$cookies.get(k);
this.$cookies.remove(k);
8、全局应用配置element-ui、bootstrap
import ElementUi from 'element-ui'
Vue.use(ElementUi)
"""