申明:本人未系统学习过vue和layui,前端属于半吊子,如有错误,请尽情指出。
引言
最近项目中,在下拉框中选择一个项,从数据库中获得列表内容,放到试实体对象中,通过v-for遍历option,但是页面上没有任何变化,此时是因为LayUI没有进行页面渲染。
解决方案
在请求方法中,重新渲染组件。
this.$nextTick(function () {
form.render("select");
});
解释
this.$nextTick() 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新。
这里的form指的是layui.form