vue + axios得到数据无法绑定到vue内 详细代码如下

发布于 2022-09-06 15:27:05 字数 899 浏览 12 评论 0

======================
组件内的代码
============================

<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只是偏爱你 2022-09-13 15:27:05

Vue组件中,data 声明为返回一个初始数据对象的函数,初始数据也就是这里的datas数组,不会被所有的实例共享引用,
所以在 base.js里面没法获取到组件中的datas数组,对应的也没法赋值。
这里的this.datas = response.data;,只是为全局的Vue对象添加了一个datas属性。
建议直接在组件里面引入axios,请求数组,并赋值给datas.

盗琴音 2022-09-13 15:27:05

在 novelGet 中已经得到了数据 需要把数据return出来 不过很难想象你这一步axios封装的用意是为何

凌乱心跳 2022-09-13 15:27:05

楼上说的对,再提供两个思路
一是使用状态管理,把数据存到那里,也在那里取,二是在你的函数里提供一个回调函数,在回调函数里赋值数据

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文