vue + axios得到数据无法绑定到vue内 详细代码如下
======================
组件内的代码
============================
<script>
export default {
data() {
return{
datas: [],
}
},
created () {
this.novelGet('http://novel.juhe.im/categories');
console.log(this.datas);
},
methods: {
// 路由跳转执行
}
};
</script>
======================
引入了一个base.js novelGet 就是从里面得到的
============================
exports.install = function (Vue, options) {
Vue.prototype.novelGet = function (url,dataName='data'){
this.axios.get(url)
.then((response)=> {
// console.log(response.data);
this.datas = response.data;
console.log(this.datas);
})
.catch(function (error) {
console.log(error);
});
};
我想要 axios 获取到的数据赋予 datas 这个属性内。 我新手,不知道你们是怎么将数据应用到组件内(视图)去的,如果有其他方法也可以,谢谢诸位援手!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Vue组件中,
data
声明为返回一个初始数据对象的函数,初始数据也就是这里的datas
数组,不会被所有的实例共享引用,所以在
base.js
里面没法获取到组件中的datas
数组,对应的也没法赋值。这里的
this.datas = response.data;
,只是为全局的Vue
对象添加了一个datas
属性。建议直接在组件里面引入
axios
,请求数组,并赋值给datas
.在 novelGet 中已经得到了数据 需要把数据return出来 不过很难想象你这一步axios封装的用意是为何
楼上说的对,再提供两个思路
一是使用状态管理,把数据存到那里,也在那里取,二是在你的函数里提供一个回调函数,在回调函数里赋值数据