1、异步加载的数据,想要赋值到data里的变量失败,解决办法:要在异步加载前,把this赋值给其他变量,如:var that=this;
因为:
在Vue中this始终指向Vue,但axios中this为undefined,
若需要赋值给变量用以渲染数据,可以通过=>函数,这时this为Vue
或者可以直接通过:
var that = this;
将this保存在that中,再在函数中使用that均可。如:
data () {return {Msg: ' ',}}
var that=this;
axios({url:url,method:'post',data:datas,headers: {'Content-Type':'application/x-www-form-urlencoded'}}).then(function (response) {}
2、轮播图效果
我是参考:http://www.php.cn/js-tutorial-389127.html 这个网址做的轮播图
3、vuejs中使用axios+Qs发送请求及解决跨域问题(以下是:axios模拟表单POST请求 使用qs)
1)安装axios//安装过程不详解
2)
安装Qs:
cnpm install qs
引用模块:
import Qs from 'qs'
:构造数据
var da1 = Qs.stringify({
method:'value',
});
填入数据,发送请求:
axios({
url:'/api/xxxxx/xxxx.xxx',//请求地址
method:'post',
data:da1,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'//跨域
}
})
4、组件间通信问题:
想要实现组件间通信,实例元素一定先创建,不然就会出现第一次通信失败,第二次才成功的问题,如:
兄弟间组件通信:
想要实现兄弟组件间通信,先要定义一个公共的bus去允许组件间通信,如:
新建一个event.js文件,文件内容(文件存放位置可以在main.js的同级目录,方便调用):
import Vue from 'vue'
let bus = new Vue();
export default bus;
如果是A组件给B组件传参数,A、B组件在script标签里要分别引入bus:
import bus from '../event.js'
A组件发送信息:bus.$emit('sendMsg',msg)//msg是个变量,sendMsg是自定义的方法
B组件接收信息:
bus.$on('sendMsg',function(msg){console.log(msg)});