[关闭]
@langlibaitiao 2018-06-20T17:03:22.000000Z 字数 1362 阅读 859

项目注意事项整理

前端

一、参数相关

1 查询接口参数

key对应的value值为空时,该key不传。

2 日期参数

格式为时间戳格式或者yyyy-MM-dd格式。

3 分页参数

传limit与offset。

4 页面刷新后参数保留

保留刷新前的查询条件,路由参数与接口参数均需保留。

二、Vue添加请求拦截器

1 统一处理错误及配置请求信息

  1. // 在router.js文件下
  2. // 添加请求拦截器
  3. axios.interceptors.request.use(function (config) {
  4.   // 在发送请求之前做些什么
  5.   return config
  6. }, function (error) {
  7.   // 对请求错误做些什么
  8. return Promise.reject(error)
  9. });
  10. // 添加响应拦截器
  11. axios.interceptors.response.use(function (response) {
  12.   // 对响应数据做点什么
  13.   return response
  14. }, function (error) {
  15.   // 对响应错误做点什么
  16.   return Promise.reject(error)
  17. });

2 登录拦截(例如:判断token信息是否存在)

  1. let router = new Router({
  2. routes: [
  3. {
  4. path: '/',
  5. name: "欢迎",
  6. meta: {
  7. requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的
  8. },
  9. component: () => import('@/components/client/Hello')
  10. },
  11. {
  12. path: '/login',
  13. name: "登录",
  14. component: () => import('@/view/login/login')
  15. }
  16. ]
  17. })
  18. // 在main.js中 利用vue-router提供的钩子函数beforeEach()对路由进行判断。
  19. router.beforeEach((to, from, next) => {
  20. if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
  21. if (store.state.token) { // 通过vuex state获取当前的token是否存在
  22. next();
  23. }
  24. else {
  25. next({
  26. path: '/login',
  27. // 将跳转的路由path作为参数,登录成功后跳转到该路由
  28. query: {redirect: to.fullPath}
  29. })
  30. }
  31. }
  32. else {
  33. next();
  34. }
  35. })
  36. // 确保要调用 next 方法,否则钩子就不会被 resolved。

三、vue-router 按需加载

1 vue的单页面(SPA)项目,必然涉及路由按需的问题。

  1. //Vue-router的官网推荐这种方式:
  2. //vue异步组件和webpack的【代码分块点】功能结合,实现了按需加载
  3. component: () => import('@/pages/client/ClientList')

四、Vue 数组/对象更新 视图不更新

此类问题 vue官方文档 的链接

五、vue 滚动行为用法,进入路由需要滚动到浏览器底部、头部等等

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。 注意:这个功能只在支持 history.pushState 的浏览器中可用。
链接:vue-router官方文档

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注