100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 详解Vue + Vuex 使用 vm.$nextTick实例详解

详解Vue + Vuex 使用 vm.$nextTick实例详解

时间:2022-04-03 19:49:18

相关推荐

详解Vue + Vuex 使用 vm.$nextTick实例详解

web前端|js教程

nextTick,Vuex,实例

web前端-js教程

本文主要介绍了详解Vue + Vuex 如何使用 vm.$nextTick,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

asp mvc框架源码下载,vscode jumpy,vm ubuntu 分区,关闭+tomcat,.sql与sqlite,云主机云服务器,响应式滚动插件,前端表格框架底色,larbin 爬虫,php写js,朝阳区seo,08cms房产网站装修,网页银色代码,中企动力 网站模板,怎么关闭手机的页面跳转页面跳转页面,vs员工考勤管理系统源码,微擎小程序安装目录lzw

vm.$nextTick

农产品展示源码,ubuntu分区备份工具,tomcat默认数据源,理杏仁爬虫,php数据库累加,seo presslzw

简单说,因为DOM至少会在当前tick里面的代码全部执行完毕再更新。所以不可能做到在修改数据后并且DOM更新后再执行,要保证在DOM更新以后再执行某一块代码,就必须把这块代码放到下一次事件循环里面,比如setTimeout(fn, 0),这样DOM更新后,就会立即执行这块代码。

HTML5手机网站源码查看,ubuntu命令输入不见,什么时候tomcat做集群,爬虫自动搜索股票,限制php-cgi的进程数,seo加营销lzw

//改变数据 vm.message = changed //想要立即使用更新后的DOM。这样不行,因为设置message后DOM还没有更新 console.log(vm.$el.textContent) // 并不会得到changed //这样可以,nextTick里面的代码会在DOM更新后执行 Vue.nextTick(function(){ console.log(vm.$el.textContent) //可以得到changed })

vm.$nextTick 的作用是将回调延迟到下次 DOM 更新循环之后执行。

正常在 ready/mounted 中获取数据, 那么操作是很简单的

ready() { // vue2 为 mounted() { var request = $.ajax({ type: "POST", dataType: json, url: "api.php" }); request.then((json) => { // balabala this.$nextTick(function () {// balabala }) });}

如果是用 vuex 的话, 由于vuex的数据操作都在 action 和 mutations, 然后在 ready/mounted 中调用 action 里的函数, 那么这时候该怎么用 vm.$nextTick 呢?

这时候我们就需要用到 Promise 了, 具体代码如下:

首页是api.js

export default { getFromConfig(config) { return $.ajax({ data: config }) }}

然后是action.js

export const getArticleList = ({dispatch}, config) => { return api.getFromConfig(config).then(({data}) => { dispatch(types.RECEIVE_ARTICLE, data, config.page) })}

这里一定要加上return, 这样就可以返回一个Promise对象

最后是vue组件

methods: { loadMore(page = this.page) { var id = this.$route.params.id || "" Promise.all([this.getArticleList({ id: id, page: page}) ]).then(() => {this.$nextTick(function () { // balabala}) }) }}

学会简单的vuex与模块化

Vuex提升学习篇分享

关于Vuex的全家桶状态管理

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。