dd-touch问题总结

2018-07-11  本文已影响0人  胖太_91bf

1.二次封装cube-scroll组件

2.tabbar配合动态组件时候, 出现警告

vue.runtime.esm.js?8bc8:587 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "currentIndex"

found in

---> <DdTabbar> at src/components/dd-tabbar.vue
       <Test1> at src/components/test1.vue
         <App> at src/App.vue
           <Root>

错误翻译: 避免直接改变prop, 因为props的值会被覆盖, 当父组件重新渲染时, 用data或computed属性复制prop的值, prop变成currentIndex

解决方式报错已经给出: 把prop复制到data里

3.tabbar组价配合cube-slide组件, 互相关联index

4.进度条
收获: 学会了svg-progess-bar这个轻量有好用的库的使用,

5.数字快速增涨动画效果

属性 描述 类型 默认值
startVal 动画开始的数值 Number 0
endVal 结束的数值(最终需要显示的数值) Number 2017
duration 动画时间 Number 3000
autoplay 是否在mounted后自动播放 Boolean true
decimals 需要显示的小说位数 Number 0
decimal 分割小数的字符 String .
separator 千进制分隔符 String ,
prefix 前缀 String ''
suffix 后缀 String ''
useEasing 是否使用easing function Boolean true
easingFn easingFn Funcion -
方法名 描述
mountedCallback when mounted will emit mountedCallback
start start to countTo
pause pause to countTo
reset reset the countTo

6 移动端适配: amfe-flexible
收获: 配合sass等, 实现rem适配
7 登录接口报404,
问题 原因: 未使用Form Data方式传递数据
解决方法: 使用axios.transformRequest:

axios({
  ...,
  transformRequest: [function(data, headers) {
    let ret = ''
    for(item in data) {
      ret += '&' + encodeURIComponent(item) + '=' + encodeURIComponent(data[item])
    }
    ret = ret.slice(1)
    return data
  }]
})

收获:

8 登录验证接口报跨域(在配置好devServer的情况下),这个是后台处理的问题,

9 在使用filter时候, 对数字进行处理

10 在使用keep-alive和cube-scroll时候, 再次返回路由的时候, 无法滑动, cube-scroll在有请求数据的时候会展示不全,

11 项目中出现很多, 单独接口并且要求执行顺序, 使用Promise的链式调用,

12 请求数据时候,跳转路由,需等待接口请求完毕才能完成路由跳转?

13 项目中精选产品, 一个标题, 后边跟着1个或若干子项,
使用递归组件 - 待解决

14 computed和template里无法访问数组里的值?

解决方法: 在mutations, 异构需要的数组

15 axios.post json转formData

16 cube-slide在请求接口数据的时候, initialIndex参数(设置默认页)失效

解决方法: 查看cube-slide源码, 发现凡是请求的接口, 都需要执行一次refresh()方法, 在refresh()方法里, 初始化currentPageIndex = 0 而并非initialIndex, 手动修改

17 路由跳转时, 中断所有的ajax请求

解决方法:

const CancelToken = axios.CancelToken
const source = CancelToken.source()
// 将 cancelToken: source.token添加到axios配置中
// 调用source.cancel('text')

18 <component :is="">在使用动态组件时, 判断组件切换

19 需要在v-bind指令里拼接, filter过滤的数字和字符串

解决办法: 在v-bind里, filter会过滤掉v-bind里所有的内容, 只能在filter里进行处理, 通过正则匹配汉字部分, indexOf()和slice()获取数字部分

20 在getters中异构state中的数据报错, 无法直接在state中的对象里添加属性

解决方法: 将对象进行深拷贝

  1. 在使用actions异步请求数据的时候, 报错, 找不到数据
  1. 使用数组方法concat() 遇到的问题
- concat()方法不会修改原数组, 需要重新获取concat()的值, var newArr = arr.concat(arr1)
  1. 父组件跳转子路由, 子路由里有需要请求数据, 并吧数据存到vuex里, 每次跳到路由, 都会重复请求一次接口, 就会叠加重复数据
  1. 使用keep-alive时, api的数据被缓存之后, 在切回来, 报错Unable to preventDefault inside passive event listener due to target being treated as passive -> 无法监听touch事件
  1. 我想把cube-scroll的组件BScroll对象, 传到回到顶部组件, 在mounted里获取不到这个BScroll
  1. 如何往vue的动态组件<component :is="">里传值
  1. 使用keep-alive时候, 使用Bus, 不在activated()钩子里emit事件, 是无法on监听到, 在请求玩接口的.then()函数里监听不到bus.$emit()的事件, 这个目前不知道为啥, 但是问题解决了
  1. 怎么判断对象{}为空
- 方法一: 
var c = {};
if(JSON.stringify(c) == "{}"){ console.log(7);}
  1. keep-alive问题, keep-alive的钩子函数activated()子组件比父组件优先执行,
上一篇 下一篇

猜你喜欢

热点阅读