Vue和Axios发出请求并显示结果

迈克尔·B

我正在尝试设置一个vue应用程序,该应用程序向后端发出请求,然后在页面上显示结果。我煮了这个例子

new Vue({
    data: {
        message: '{}'
    },
    el: '.login-app',
});

Vue.component('message-section', {
    template: '<div>Message Section</div>'
});

Vue.component('login-component', {
    template: '<div><button v-on:click="login(\'[email protected]\', \'passwd\')">Login</button></div>',
    methods: {
        login: function (username, password) {
            axios.post("http://192.168.1.10:8080/login", {username: username, password: password})
                .then(response => {this.message = response.data})
        }
    }
});

和一个类似的索引:

<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Vue Test</title>
  </head>
  <body>
    <div class="login-app">
      {{ message }}
      <message-section></message-section>
      <login-component></login-component>
    </div>
    <script src="/static/testvue.bundle.js"></script>
  </body>
</html>

这个想法是一个简单的应用程序,应该发送用户名/密码并获取诸如“成功”之类的内容或可以显示的内容。但是我完全不熟悉vue和javascript,所以我被卡住了。我不确定如何使响应显示在任何地方。我那里有一个{{message}},但是它什么也没做。我所看到的只是我猜想呈现的Vue对象的“ message”属性中的{}。而且这些用户/密码是硬编码的...我不确定如何使其与表单字段一起使用。

我可以看到数据已经发送到后端了,所以我知道这是可行的...

此外,如何构造Vue项目,以便将其拆分为多个“模块”或其他内容?

编辑:

如果我更改它,那么只有一个组件是这样的:

new Vue({
    data: {
        message: '{}'
    },
    el: '.login-app',
    methods: {
        login: function (username, password) {
            axios.post("http://192.168.91.30:8080/login", {username: username, password: password})
                .then(response => {this.message = response.data})
        }
    }

})

<div class="login-app">
  {{ message }}
  <button v-on:click="login(\'[email protected]\', \'passwd\')">Login</button>
</div>

然后什么也没有渲染……这应该将它们放在同一个容器中,或者对吗?

伯特

这是您修改后的代码。

console.clear()

new Vue({
  data: {
    message: '{}'
  },
  el: '#login-app',
  methods: {
    login: function(username, password) {
      axios.post("https://httpbin.org/post", {username, password})
        .then(response => this.message = response.data.json)
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.17.1/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.11/vue.min.js"></script>

<div id="login-app">
  {{ message }}
  <button v-on:click="login('[email protected]', 'passwd')">Login</button>
</div>

在这里,它是通过组件工作的。

console.clear()

Vue.component('login-component', {
  template: `
    <div>
      <button v-on:click="login('[email protected]', 'passwd')">Login</button>
    </div>`,
  methods: {
    login: function(username, password) {
      axios.post("https://httpbin.org/post", {username, password})
        .then(response => this.$emit('login-success', response.data.json))
    }
  }
});

new Vue({
  data: {
    message: '{}'
  },
  el: '#login-app',
  methods: {
    onSuccess(message) { this.message = message }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.17.1/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.11/vue.min.js"></script>

<div id="login-app">
  {{ message }}
  <login-component @login-success="onSuccess"></login-component>
</div>

在第二个示例中,请注意这message父对象的数据属性根Vue。login-component 没有直接访问message就是这种情况,如果在组件中进行了ajax调用,则要设置message该值,必须从组件中发出该值。该代码通过发出自定义事件login-success并以成功值作为参数进行传递来实现此目的。父级使用以下语法侦听该事件:

<login-component @login-success="onSuccess"></login-component>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vuejs和Axios发出多个获取请求

来自分类Dev

Vue - 为什么我不能在 vuex 中显示我的 axios get 请求的结果?

来自分类Dev

发出发布请求时Vue.js axios错误

来自分类Dev

405从vue到laravel发出axios放置/补丁请求的错误

来自分类Dev

Axios Ajax,在发出Ajax请求时显示加载

来自分类Mysql

Node和Axios-如何发出顺序请求

来自分类Dev

使用axios发出Curl请求

来自分类Dev

Axios 不发出请求,没有结果,没有错误

来自分类Dev

使用来自 vue 组件的 axios 从后端 API 发出获取请求

来自分类Dev

如何在我的 Vue 项目中向本地 JSON 文件发出 axios 请求

来自分类Dev

Axios-一次发出多个请求(vue.js)

来自分类Dev

Vue,Axios,向 YouTube 搜索 API 发出 get 请求返回 404

来自分类Dev

如何同时使用正文和表单数据发出 axios post 请求?

来自分类Dev

如何使用Azure Functions和node.js在module.exports之外发出axios请求?

来自分类Dev

在ReactJS中发出多个并行axios请求

来自分类Dev

无法使用 axios 发出 POST 请求

来自分类Dev

Axios发出请求,发送参数和数据

来自分类Dev

发出Axios请求时加载微调框

来自分类Dev

使用 axios 发出请求时的 MethodNotAllowedHttpException (lumen)

来自分类Dev

我无法在AXIOS中发出GET请求?

来自分类Dev

反应-Axios调用发出太多请求

来自分类Dev

Axios刷新时发出2个请求

来自分类Javascript

Vue js 2和Axios发布请求-表格

来自分类Dev

使用vue.js和Airtable的多个axios请求

来自分类Dev

Vue.js在异步请求完成后显示结果

来自分类Dev

如何使用Vue和axios检索和显示单个记录

来自分类Dev

ngResource发出请求,但不解析结果

来自分类Dev

如何发出 GET 请求并打印结果?

来自分类Dev

在 API 中发出请求并计算结果

Related 相关文章

热门标签

归档