前后端分离之Vue(三)爬过得那些坑

简介:

爬过得那些坑

前言:在整个Vue的过程中,遇到了不少坑。查找不同的资料,把这些坑给填了,记录下这些坑,以及解决办法。

一、Http请求的那些坑

1.不支持http请求

表现为:程序启动正常,点击按妞不跳转,后台无响应,浏览器调试出现

Uncaught TypeError: Cannot read property 'post' of undefined

解决办法:添加vue-resource支持,在main.js添加



   
   
  1. import VueResource from 'vue-resource'
  2. Vue.use(VueResource);

2.post请求,后台接收参数为null

表现为:后台响应但是参数为null,正确的登陆失效,调试时,参数为from object


解决办法:http请求中,添加

{emulateJSON:true}

全部的Http请求部分代码为



   
   
  1. _this.$http.post('http://localhost:8080/person/login', {
  2. username: _this.username,
  3. password: _this.password
  4. }
  5. ,{emulateJSON:true}
  6. )
  7. .then(function (response) {
  8. var errorcode = response.data.code;
  9. if (errorcode == "200") {
  10. _this.$router.push(
  11. { path: '/HelloWorld',
  12. query: {
  13. user: response.data.data,
  14. }
  15. });
  16. } else {
  17. _this.$router.push({ path: '/Fail' });
  18. }
  19. })
  20. .catch(function (error) {
  21. console.log(error);
  22. });

3、正确处理后,跳转到空页面

原因:路由的url配置有问题,注意组件的引用的对应关系以及path的路径问题

4.Request请求变成Options

解决办法:设置头格式



   
   
  1. http: {
  2. headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
  3. },

二、Vue视图之间的跳转实现

1.引用router组件

2.在router.js添加对应的view,以及相对应的path的配置

3.this.$router.push({path:'url'})

4.可参照上文的Http请求部分代码

三、Vue跳转传递参数

采用编程式的实现方式

传递参数



   
   
  1. _this.$router.push(
  2. { path: '/HelloWorld',//跳转的路径
  3. query: {//query 代表传递参数
  4. user: response.data.data,//参数名key,以及对应的value
  5. }
  6. });

接收参数

this.$route.query.user

user代表的参数名,不但可以传递单个参数,也可以传递对应,解析的方式user.属性

四、实例,登陆页面的Vue代码



   
   
  1. <template>
  2. <div class="login">
  3. {{ message }} <br/>
  4. <input v-model="username" placeholder="用户名"> <br/>
  5. <input v-model="password" placeholder="密码"> <br/>
  6. <button v-on:click="login">登陆 </button>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. name: "login",
  12. data() {
  13. return {
  14. message: 'Vue 登陆页面',
  15. username: '',
  16. password: ''
  17. }
  18. },
  19. http: {
  20. headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
  21. },
  22. methods: {
  23. login: function () {
  24. var _this = this;
  25. console.log(_this.username+_this.password);
  26. _this.$http.post( 'http://localhost:8080/person/login', {
  27. username: _this.username,
  28. password: _this.password
  29. }
  30. ,{ emulateJSON: true}
  31. )
  32. .then( function (response) {
  33. var errorcode = response.data.code;
  34. if (errorcode == "200") {
  35. _this.$router.push(
  36. { path: '/HelloWorld',
  37. query: {
  38. user: response.data.data,
  39. }
  40. });
  41. } else {
  42. _this.$router.push({ path: '/Fail' });
  43. }
  44. })
  45. .catch( function (error) {
  46. console.log(error);
  47. });
  48. }
  49. }
  50. }
  51. </script>
  52. <style scoped>
  53. </style>
本文作者:shenbug
本文发布时间:2018年03月13日
本文来自云栖社区合作伙伴 CSDN,了解相关信息可以关注csdn.net网站。
目录
相关文章
|
17天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
19天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
20天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
23 1
vue学习第一章
|
20天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
22 1
vue学习第三章
|
20天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
17天前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
19 1
|
17天前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
26 1
|
20天前
|
JavaScript 前端开发
vue学习第五章
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,正向全栈进发。如果你从我的文章中受益,欢迎关注,我将持续分享更多优质内容。你的支持是我最大的动力!🎉🎉🎉
24 1
|
17天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
17天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能