关于Vue开发的经验小总结

        首先,本篇仅是自己开发过程中遇到的一些问题、对其进行梳理总结而来,不保证一定的适用于你现在所遇到的问题和想学习的内容。

一、关于旧项目旧功能模块的更新

        这种需求一般工作中都会遇到,需要改写之前的代码,可能还要保留原有的功能,然后在开发一个新的差不多功能的一样的模块且两者都要存在,对于这种屎山加料的需求是没办法避免的。

        推荐方法:

  • 定义变量用于模块的区分、或者将变量传递到对应组件进行具体的控制
  • 通过slot插槽,将原有的功能插入到你需要他去的地方
  • 熟悉一下旧模块的代码,可能会发现一些复用的方法,逻辑的处理,尽量别去自己加,可能原来越烂
  • 按照旧版的进行开发,除非真的无用代码,不然尽量避免更改和删除旧版逻辑和代码
  • 对于一些组件之间的就方法,直接通过refs()标记去触发,传递需要的参数
  • 如果屎山太大就抓紧跑

二、关于一个变量同时更改两次监听器watch只能监听到最后一次变化

        因为vue在性能方面进行考虑,vue采用微任务队列去轮询watcher,连续的两次改变是同步的,所以回调队列中只会添加一次回调

        解决:可以通过延时器进行数据的更改,就可以监测到每次之间的数据改变了。

三、关于this.$nextTick()方法

        this.$nextTick 将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。

        就想上述所说,对于 this.$nextTick()需要在修改数据之后使用它,当你没有数据更改,DOM更新的时候使用无效,切只对当前的数据更改后影响的DOM树有效

四、关于组件之间的通信

        对于父组件更改子组件的一些数据或者触发方法的话,可以通过ref标记子组件,进而通过refs去更改子组件数据或触发子组件方法。

五、对于一些图表类的依赖多看官网

六、对于一些页面跳转需要逻辑处理

        对于页面跳转需要进行逻辑处理的,例如在不同页面跳入显示的数据不同、内容不一。

        推荐:使用路由守卫进行逻辑的处理,在路由拦截器中不能使用this,一般通过vm去获取对应的数据及方法。

next(vm => {
	
});

七、后续更新

你可能感兴趣的:(vue.js,前端,javascript)