7

一、vue单页面回退丢失参数的问题
可能有些跟我一样的新手同学会遇到一个问题,就是比如我从商品详情跳转到购物车,没问题,但是,购物车页面中点击浏览器的回退按钮,返回到detail页面时,你的动态数据(图片啊,名称啊,价格啊什么的)不见了,只剩下一堆css样式架子在那里,很难受。
这就是单页面回退参数丢失的问题,话不多说,直接说解决方法。
1、首先,我们需要了解一下Vuex。(状态管理)具体大家百度vuex

在vue-cli工程中
npm安装:npm i vuex --save

引入到项目mian.js中:
import Vuex from 'vuex'
Vue.use(Vuex);

定义一个常量
const store = new Vuex.Store({
    state: {
      songInfo:''
    },
    mutations: {
       //定义函数,比如我要获取songInfo
      getSongInfo(state, songInfo) {
          state.songInfo = songInfo;
      }
    }
});
然后全局的vue中加上去store
/* eslint-disable no-new */
    new Vue({
      el: '#app',
      router,
      store,
      components: { App },
      template: '<App/>'
   })
  这样,我们main.js的部分就做好了,那么页面部分怎么做呢
  我们既然要获取,就要先存
  在你存数据的vue页面中,id是参数,可以是数组,变量什么的,要不要看你自己需求
    save(id){
           //console.log(id);
           this.$store.commit("getSongInfo", id);
       }
  然后接下来就是在你想要获取数据的页面获取储存的东东了
  computed:{
    hereIsYourData(){
        return this.$store.state.songInfo;
    }
  }

为什么加了个computed计算属性呢?我觉得挺方便的。看看这里说的
https://cn.vuejs.org/v2/guide...
顺便你可以加深对watch和conputed的理解
计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter
然后,解决完毕!嘻嘻嘻

二、webpack打包工程上线后,你发现开发者工具的source看到了源码
对,webpack上线配置错了。去到config文件夹下的index.js,里面有个build的内容,把其中的productionSourceMap改成false

三、凡是修改了项目的配置,都要重新npm run dev 哟,因为热重载一般是自动更新修改的页面

四、vue的Post请求到后台语言(php,java,asp啥的),发现post不出去,不报错又没效果
解决方案:加上{emulateJSON: true}。例如:

    this.$http.post("url", {
        //参数
    },{emulateJSON: true}).then(function(res) {
        //suc
    });
    

五、发现webpack打包后,页面是空的
可能你的路由mode是history,要改成hash,一般默认是hash。

。。。就大概说这些吧,想不起来了。。。我只是个初学者。。。

最后link一下算是带我入门的导师,慕课网的河畔一角,看了他的视频,讲的很棒
https://coding.imooc.com/clas...

还有我的项目,大家喜欢的话,可以找我要源码,同时跪求!跪求!有大神可以指点我一下子!
http://111.230.91.125:3000/#/
http://111.230.91.125:8080/Vshop/view/index.html

如果你觉得文章不错的话,点个小赞呗,谢谢谢谢,嘻嘻嘻!


VisionM
1.4k 声望138 粉丝