Javascript 将数据从JS变量解析到Vue实例
我是VueJS新手,有一个非常基本的问题。如果我有一个JS变量,并想将其解析为Vue实例数据部分,那么如何才能做到这一点?在下面的简单示例中,我想将变量“parsedJSON”解析为变量“test”中数据部分下的Vue实例“mainVue”:Javascript 将数据从JS变量解析到Vue实例,javascript,json,vue.js,parsing,Javascript,Json,Vue.js,Parsing,我是VueJS新手,有一个非常基本的问题。如果我有一个JS变量,并想将其解析为Vue实例数据部分,那么如何才能做到这一点?在下面的简单示例中,我想将变量“parsedJSON”解析为变量“test”中数据部分下的Vue实例“mainVue”: 在我的整个代码中,“parsedJSON”变量由来自mongoDB的JSON数据组成,可以很好地获取这些数据,但我似乎找不到将其解析到Vue实例中的方法。控制台中会显示正确的数据。您是否尝试过这样设置 data: { test: p
在我的整个代码中,“parsedJSON”变量由来自mongoDB的JSON数据组成,可以很好地获取这些数据,但我似乎找不到将其解析到Vue实例中的方法。控制台中会显示正确的数据。您是否尝试过这样设置
data: {
test: parsedJSON
}
你试过这样设置吗
data: {
test: parsedJSON
}
尝试此操作,在实例中获取:
let mainVue = new Vue({
el: '#mainContent',
data: function() {
return {
test: {}
}
},
created() {
fetch('...').then(function(response) {
return response.json();
}).then(function(data) {
this.test = data;
}.bind(this))
}
})
还是更整洁一点
let mainVue = new Vue({
el: '#mainContent',
data: () => ({
test: {}
}),
async created() {
this.test = await fetch('...').then(res => res.json())
}
})
尝试此操作,在实例中获取:
let mainVue = new Vue({
el: '#mainContent',
data: function() {
return {
test: {}
}
},
created() {
fetch('...').then(function(response) {
return response.json();
}).then(function(data) {
this.test = data;
}.bind(this))
}
})
还是更整洁一点
let mainVue = new Vue({
el: '#mainContent',
data: () => ({
test: {}
}),
async created() {
this.test = await fetch('...').then(res => res.json())
}
})
是的,这将与“正常”变量一起工作。问题是,在我的parsedJSON中,我从我的mongo db获取数据,它不允许我以这种方式解析数据。我将更改/更新上面的代码示例。啊,我现在明白了,在这种情况下,我认为另一个答案是正确的。是的,这将适用于“正常”变量。问题是,在我的parsedJSON中,我从我的mongo db获取数据,它不允许我以这种方式解析数据。我将更改/更新上面的代码示例。啊,我现在明白了,在这种情况下,我认为另一个答案是正确的。您应该在vue实例中获取,例如,是的,这就是我的想法。只是不知道如何做tbh。您应该在vue实例中获取,例如,是的,这就是我的想法。只是不知道怎么做,谢谢!这对我有用。我将查找beforeMount,因为我不熟悉this.np,感谢accept,也为了整理代码,您可以使用async/Wait和arrow funcs代替.bind(这取决于IE的支持,因为看起来不像您使用Transpilert,尽管IE中也没有fetch;再次感谢提示和答案。我只是看了一下,似乎我可以用“created”来代替beforeMount,对吗?要在创建实例后同步调用,那么如果测试是对象,请将其定义为数据中的对象。。测试:{}谢谢!这对我有用。我将查找beforeMount,因为我不熟悉this.np,感谢accept,也为了整理代码,您可以使用async/Wait和arrow funcs代替.bind(这取决于IE的支持,因为看起来不像您使用Transpilert,尽管IE中也没有fetch;再次感谢提示和答案。我只是看了一下,似乎我可以用“created”来代替beforeMount,对吗?要在创建实例后同步调用,那么如果测试是对象,请将其定义为数据中的对象。。测试:{}