需求: 从接口动态获取子菜单数据 动态加载 要求只有展开才加载子菜单数据 支持刷新,页面显示正常思路: 一开始比较乱,思路很多。想了很多首先路由和菜单共用一个全局route, 数据的传递也是通过sto
顺晟科技
2021-07-21 12:00:08
209
顺晟科技:
这个代码我截的有问题…,上边使用let thiz = this的定义,而且我通过你次回答的sync深度监听方式实现了我想要的效果percent: {handler:function(newV,oldV){this.percentNum = newV;},sync: true},我使用进度组件监听新的percentNum属性后可以实现我想要的效果,谢谢解决了我的大问题
sync这个方法只是想解答一下原问题。实际生产项目中还是不要使用了,毕竟官方文档都没有提到这点。
不止是优雅不优雅的问题。sync这个选项官方并没有给出,只是通过查看源码得出的骚操作罢了,所以这样并不是一个好的解决办法。
这是是全的代码,但是我发现好像还是不能让组件监听到数据变化,还正在测试…
谢谢回复,实际我这个只是我遇见问题后的测试代码,心中疑惑已经解决,回答楼上的为实际应用中需要解决的问题,希望帮忙解答
因为我看不到你其他代码,不清楚是否有别的问题影响到它。我没有用过 uni-app,但这是刚刚在我的项目用 elment-ui 的进度条测试的代码,150ms还是可以比较清晰地看到进度条的变化。
恩,已删除,不过这个确实解决了我心中的疑惑
为什么你的代码里看到了 thiz
而不是 this
。
标签渲染的问题,你需要通过监听,获取到完整的数组logs之后再进行页面渲染。而不是同步进行。根据楼上所说,同步更新的效果是有办法实现的,但是官方并不提供方法,这会比较费力。
而且上面截图中的好多变量我都不知道来自哪里
谢谢!彻底解答了我心中的疑惑,还有一个问题,跟这个类似,我有x个请求,需要在一个for中循环请求,每次请求成功后,data中的属性增加指定百分比。页面有个进度条,监听data中的这个属性增加进度,而现在的问题就跟前一个问题一样只能监听到最后一次,也就是直接达到,而这个进度条是我用的uni-app框架提供的,无法修改组件代码,请问有没有办法,虽然我已经使用定时器形式实现,但总感觉不太优雅
上边的代码中,logs为啥只有一条数据,number改变了多次,却只监听到最后一次修改,不懂vue的监听原理,求大神给解答一下,不要问我为啥要这么写,我只是想知道原理原因
这个是我实际遇到的问题,上面的是我根据这个问题做的测试,我已经知道了watcher怎样同步更新,但是在使用组件而又无法修改组件的情况下,却不知道能不能同步通知组件刷新
实际上,watcher
是可以实现你想要的同步更新效果的,只需要将 sync
选项设置为 true
即可。而官方文档关于 watch
的 options
的介绍中并没有提到这个选项,很显然官方并不希望用户自己创建同步更新的 watcher
,因为这可能会带来一些不必要的视图更新和性能问题。详见官网对 异步更新队列 的描述。
借用你的话说,总感觉这样也不是太优雅。
我使用你这个代码确实是走的,不确定是不是ajax的影响或者其他原因,其他好像是能影响他的,我需要再看一下,确实我自己也感觉这样还不够优雅 ,但是因为是vue新人,目前没有想到其他优雅实现的方法
,原来的考虑是等之后精深了再优化…
恩,目前看不使用sync,好像你上边的代码是可以实现效果的,但是不知道我的为啥不可以…
不过我自己的watch倒是每次都会走,只不过组件的watch好像是不能同步监听
我观察了下,我觉得你的代码主要的问题不是watch监听的问题,是
没关系,还是谢谢解答
我上次的回答有误,已经删除。我在vue3里面用compositionAPI的方式试验了一下,每次改变都会往数组里面push一次。实时更新的。至于vue2的情况,不测试了。非常抱歉,上次回复草率了。
23
2022-09
23
2022-09
23
2022-09
16
2022-09
16
2022-09
13
2022-09