可以完成跨组件传参的四种方式

// 1) localStorage:永久存储数据
// 2) sessionStorage:临时存储数据(刷新页面数据不重置,关闭再重新开启标签页数据重置)
// 3) cookie:临时或永久存储数据(由过期时间决定)
// 4) vuex的仓库(store.js):临时存储数据(刷新页面数据重置)

vuex仓库插件

store.js配置文件
export default new Vuex.Store({
state: {
title: '默认值'
},
mutations: {
// mutations 为 state 中的属性提供setter方法
// setter方法名随意,但是参数列表固定两个:state, newValue
setTitle(state, newValue) {
state.title = newValue;
}
},
actions: {}
})
在任意组件中给仓库变量赋值
this.$store.state.title = 'newTitle'
this.$store.commit('setTitle', 'newTitle')
在任意组件中取仓库变量的值
console.log(this.$store.state.title)

vue-cookie插件

安装
>: cnpm install vue-cookies
main.js 配置
// 第一种
import cookies from 'vue-cookies' // 导入插件
Vue.use(cookies); // 加载插件
new Vue({
// ...
cookies, // 配置使用插件原型 $cookies
}).$mount('#app'); // 第二种
import cookies from 'vue-cookies' // 导入插件
Vue.prototype.$cookies = cookies; // 直接配置插件原型 $cookies
使用
// 增(改): key,value,exp(过期时间)
// 1 = '1s' | '1m' | '1h' | '1d'
this.$cookies.set('token', token, '1y'); // 查:key
this.token = this.$cookies.get('token'); // 删:key
this.$cookies.remove('token');
注:cookie一般都是用来存储token的
// 1) 什么是token:安全认证的字符串
// 2) 谁产生的:后台产生
// 3) 谁来存储:后台存储(session表、文件、内存缓存),前台存储(cookie)
// 4) 如何使用:服务器先生成反馈给前台(登陆认证过程),前台提交给后台完成认证(需要登录后的请求)
// 5) 前后台分离项目:后台生成token,返回给前台 => 前台自己存储,发送携带token请求 => 后台完成token校验 => 后台得到登陆用户

axios插件

安装
>: cnpm install axios
main.js配置
import axios from 'axios'	// 导入插件
Vue.prototype.$axios = axios; // 直接配置插件原型 $axios
使用
this.axios({
url: '请求接口',
method: 'get|post请求',
data: {post等提交的数据},
params: {get提交的数据}
}).then(请求成功的回调函数).catch(请求失败的回调函数)
案例
// get请求
this.$axios({
url: 'http://127.0.0.1:8000/test/ajax/',
method: 'get',
params: {
username: this.username
}
}).then(function (response) {
console.log(response)
}).catch(function (error) {
console.log(error)
}); // post请求
this.$axios({
url: 'http://127.0.0.1:8000/test/ajax/',
method: 'post',
data: {
username: this.username
}
}).then(function (response) {
console.log(response)
}).catch(function (error) {
console.log(error)
});

跨域问题(同源策略)

// 后台接收到前台的请求,可以接收前台数据与请求信息,发现请求的信息不是自身服务器发来的请求,拒绝响应数据,这种情况称之为 - 跨域问题(同源策略 CORS)

// 导致跨域情况有三种
// 1) 端口不一致
// 2) IP不一致
// 3) 协议不一致 // Django如何解决 - django-cors-headers模块
// 1) 安装:pip3 install django-cors-headers
// 2) 注册:
INSTALLED_APPS = [
...
'corsheaders'
]
// 3) 设置中间件:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware'
]
// 4) 设置跨域:
CORS_ORIGIN_ALLOW_ALL = True

最新文章

  1. MySQL重置root密码
  2. Linux:-杀进程的技巧
  3. information_schema系列五(表,触发器,视图,存储过程和函数)
  4. JavaWeb防止表单重复提交(转载)
  5. ajax技术应用(转)
  6. objective-c 多线程注意的问题
  7. ASP.NET Cookie存值问题
  8. Redis 数据结构使用场景
  9. js实现缓冲运动,和匀速运动有点不相同
  10. 用T-sql 实现Oracle Connect by 的功能
  11. oracle11g导入到10g
  12. Arduino CNC Shiled 和 DRV8825驱动板的注意事项
  13. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展
  14. tomcatport占用,如何识别和kill
  15. [刷题]算法竞赛入门经典(第2版) 5-4/UVa10763 - Foreign Exchange
  16. POJ 1845-Sumdiv 题解(数论,约数和公式,逆元,高中数学)
  17. php结合redis实现秒杀功能
  18. Java开发笔记(十三)利用关系运算符比较大小
  19. 逆变(contravariant)与协变(covariant):只能用在接口和委托上面
  20. VS2017打包设置

热门文章

  1. 使用PRTG和panabit结合定位网络阻塞的来源
  2. jchdl - GSL实例 - ComplementOne(一的补码)
  3. JAVASE(十三) 异常处理
  4. 高性能可扩展mysql 笔记(二)用户模型设计、用户实体表结构设计、设计范式
  5. Java实现 LeetCode 118 杨辉三角
  6. Java实现第九届蓝桥杯第几天
  7. python—面向对象设计
  8. python3 修改计算机名称GUI程序
  9. docker安装nacos
  10. PBFT共识算法