vue项目总结,项目期间遇到的问题、难点等

5,812 阅读3分钟

说说我近段时间做的有关vue的项目,对该项目出现的问题做一下总结
虽然说不是第一次使用vue做开发了,但是遇到的问题都没有时间汇总,为了防止以后再出现,所以特意的来汇总一下,以后会不定期更新哦~~~

(1)axios请求中post请求的坑。刚开始的坑是,使用axios的post方法请求数据,数据被拦截,数据一直传不到后端那边。后来查文档才得知 axios对于post请求是有拦截功能的,需要自己判断,或者使用提请的 qs 方法,将传给后端的数据进行下处理。

(2)路由传参的功能的坑。之前一直使用路由传参,但是当本页面刷新的时候,页面上是没有参数的,因为参数是从上个页面传入进来的。 解决办法:使用了缓存,和vuex状态管理。但是由于项目并不是很大型的项目,所以使用最多的是缓存。

(3)页面缓存的坑。有个填写信息的页面,需要填写一部分信息,进入查新协议页面,返回的时候,页面上填写的信息还需要留存。 解决办法:使用vue提供的keep-alive,来完成页面的缓存的。

(4)vue组件动态加载的坑。由于首页的排版不确定,然后想着,让组件动态显示,根据后端传入的数据,传入那个组件的数据,就显示那个组件。解决办法:和后端商量好,做个标识。前端根据标识判断,动态显示组件。  使用到了vue中的   , 刚开始想着是不是和原生js一样使用append直接可以插入进入呢,但是后来发现根本不可以,思路是可以的,但是实现起来是行不通的。因为append后面插入的必须是个节点,而不是组件。后来就去查阅vue文档。

(5)解析后端返回的map格式数据的坑。 之前解析数据的时候,直接就可以拿去,然后直接渲染页面使用即可。但是这次遇到后端返回的是map格式的数据,这就得解析下了。 例如:body['1'] 。根据返回的格式,自己解析成自己需要的数据格式。

(6)更新文件缓存的坑。每次打包好文件给后端更新的时候,用户手机上总会留下,上次版本的信息,而且每次都得清下缓存,才会显示最新版本的数据。后来,我师傅提了个建议,让后端返回一个更新版本的接口,前端每次更新版本的时候,都会给后端传入时间戳,然后后端接收后判断和库里的时间戳是否相同,相同的返回不需要更新,不相同的话,返回要更新,然后前端这边的处理方法是:需要更新的话,清除掉缓存,刷新页面即可。

虽然说给.js .css文件后缀加上时间戳也是可以的,但是页面的入口index.html每次都是一样的,所以。。。就不会更新,,百度一些说在nginx服务器上,写上强制更新,但是由于公司服务器上的文件很多,万一操作失误那就麻烦了

(7)获取首页链接里面的参数问题。获取是可以获取到,只要不跳转出这个项目的页面,都是可以的,但是该项目链接了许多外链,所以,有时候返回的时候,页面就会显示空白,因为获取的参数出了问题。解决办法:将参数设置成了缓存,但是返回的速度快了,首页同样还是会出现拿不到参数,的问题。

解决方法:将获取连接的templateId写在Home页面

    
if (templateId) {
    this.$store.commit('updateTemplatedId',templateId);
    window.localStorage.setItem('templateId', templateId);
    console.log('store===templateId',this.$store.state.templateId)
}else{
    setTimeout(function() {
        window.location.reload()
    }, 1500);
}