为了账号安全,请及时绑定邮箱和手机立即绑定

如何控制vue不渲染data中的初始值?

如何控制vue不渲染data中的初始值?

烙印99 2019-03-14 11:15:52
按照国际惯例,我首先 new 了一个 Vue 实例let vm = new Vue({        data: {        name: 'xxx'    },        methods: {        getData(){            let that = this;            $.ajax({                ...,                success: function(res){                    that.name = res;                }            });        }    },        mounted(){        this.getData();    }});如上,在 data 中定义了一个变量 name, 将获取数据的函数挂载在 mounted 中,用异步返回的值去变更 name。 ok,现在将 name渲染在页面上:<span>{{ name }}</span>现在的问题是,页面上会快速显示 name 的初始值 'xxx',随后才更新为异步获得的数据,很影响体验 有没有方法可以不渲染初始值?(只展示异步获得的数据)补充:设置初始值为空依然会渲染在页面上,撑开父元素比如,渲染结构如下:<span>({{ name }})</span>
查看完整描述

6 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我也遇到了这样的问题。

有一个折衷的办法。

在new Vue的时候不要挂载 el. 当data获得数据后 再用 vm.$mount("#app") 挂载。
这样页面就不会渲染了。


查看完整回答
反对 回复 2019-03-19
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

你可以让他不渲染啊,字符串初始化为空,模版那边用v-if


查看完整回答
反对 回复 2019-03-19
  • 6 回答
  • 0 关注
  • 2327 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信