vue-cli开发web项目所遇到的问题解决办法记录(一)

 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)});

猜你喜欢

转载自blog.csdn.net/qq_40101922/article/details/81774308