vue获取数据

本文介绍如何使用Mock.js生成模拟数据,包括拷贝相似字段数据、使用mockjs.com生成json数据的方法,以及如何将数据传入文件。同时,讲解了如何使用axios和fetch进行静态和动态数据请求,并对比了它们的区别。
模拟假数据
  • 拷贝相似字段数据

    • 去目标网站上找一个所需要的数据格式,然后copy,放入json文件中,再格式化文档即可。
  • 使用第三方mock.js来生成json数据【即用代码来生成数据】

    • mockjs.com 需要任何关于此种方法生成数据的方案都可以来这个网站查询方法。

    • 安装

      • npm i mockjs
    • 使用

      • // 使用 Mock
        var Mock = require('mockjs')
        var data = Mock.mock({
            // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
            'list|1-10': [{
        		//可以自己定义变量名
        		'name|+1':['a','b','c']
                // 属性 id 是一个自增数,起始值为 1,每次增 1
                'id|+1': 1
            }]
        })
        // 输出结果
        console.log(JSON.stringify(data, null, 4))
        
      • 将得到的data数据传入到新建的文件夹里,这里我传到了mock.js,复习一下node.js的代码

        const fs = require('fs')//引入模块
        
        //向目标文件中写入代码,如果目标文件不存在,那么就新建一个
        fs.writeFile('./mock.json', JSON.stringify(data), function(error) {
            if (error) throw error
        })
        
  • 使用easy mock这个线上网站生成数据

    • 具体使用方法可以去他的官网学习。
请求静态数据
 static() {
				// 注释掉的也是一种请求写法
                // const p = axios({
                //     url: './data/list.json'
                // })
                // console.log(p)

                axios.get('/day03/数据交互/data/list.json').then(
                    res => {
                        console.log(res.data.data.films);
                        this.list = res.data.data.films
                    }
                ).catch(error => console.log(error))
            }
请求动态数据【通过后端接口来请求数据】
  • 动态数据请求必须要有接口,打造这个接口,我们可以有比较多的方式选择:
    • php
    • java
    • node
    • c
  1. get

    • 使用axios进行get请求的代码块

        get() {
                      axios({
                              url: 'http://127.0.0.1:8080/get.php',
                              params: { //请求的传参
                                  a: 9,
                                  b: 5
                              }
                          }).then(res => console.log(res))
                          .catch(error => console.log(error))
                  },
      
    • 使用fetch进行get请求的代码块

      get() {
                      fetch(
                              'http://127.0.0.1:8080/get.php?a=9&b=5'
                          )
                          .then(res => res.text())
                          .then(data => console.log(data))
                          .catch(error => console.log(error))
                  },
      
      
  2. post

    • 使用axios进行post请求的代码块

      post() {
                      let parmas = new URLSearchParams()
                      parmas.append('a', 1)
                      parmas.append('b', 2)
                      axios({
                              url: 'http://127.0.0.1:8080/post.php',
                              method: 'POST',
                              data: parmas
                          }).then(res => console.log(res))
                          .catch(error => console.log(error))
                  }
      
    • 使用fetch进行post请求的代码块

       post() {
                      fetch(
                              'http://127.0.0.1:8080/post.php', {
                                  method: 'POST',
                                  headers: new Headers({
                                      'Content-Type': 'application/x-www-form-urlencoded' // 指定提交方式为表单提交
                                  }),
                                  body: new URLSearchParams([
                                      ['a', 1],
                                      ['b', 2]
                                  ]).toString()
                              }).then(res => res.text())
                          .then(data => console.log(data))
                          .catch(error => console.log(error))
                  }
      
axios 和fetch的区别
  1. axios对已经获得的数据进行了一层封装,用来防止XSRF攻击
    • axios底层自动对数据进行了一次格式化,所以就少一层。
  2. fetch并没有进行封装,拿到的就是格式化的数据。
    • 所以用fetch进行多一层的格式化,在进行一层格式化的方法有
      • res.json()
      • res.blob()格式化二进制
      • res.text()
其他的总结信息
  1. Vue中可以统一对axios进行挂载

    Vue.prototype.$http = axios//在前边写这句代码,后面的axios都可以替换成this.$htttp
    
关于vue的历史
  1. vue1.0
  2. vue2.0
### 回答1: Echarts是一个基于JavaScript的可视化图表库,可以用来展示各种类型的数据。Axios是一个基于Promise的HTTP客户端,可以用来发送HTTP请求。Vue是一个流行的JavaScript框架,可以用来构建用户界面。 要在Vue中使用Echarts和Axios获取数据,可以先使用Axios发送HTTP请求获取数据,然后将数据传递给Echarts进行可视化展示。具体实现可以参考Echarts和Axios的官方文档,以及Vue的相关教程。 ### 回答2: 随着前端技术的快速发展,越来越多的数据可视化工具被开发出来,而 Echarts 是当中备受青睐的一个。不过,数据可视化工具展示的数据需要来源于后端,而前端使用 Ajax 进行异步数据请求的方式已经逐渐被代替。这时候,Axios 作为一款基于 Promise 的 HTTP 库,应运而生。而 Vue 作为当前最流行的前端框架之一,与 Axios、Echarts 来搭配使用,可以轻松获取和展示数据。 首先让我们来了解一下 Echarts 与 Vue 结合使用的方式。Echarts 虽然是一个优秀的可视化库,但其本质上还是一个 JavaScript 库,使用方式类似于 jQuery 或者 lodash 等库。因此,在 Vue 中使用 Echarts 需要导入 Echarts 库,并进行相应的配置: ``` import echarts from 'echarts' export default { mounted() { const myChart = echarts.init(this.$refs.chart); myChart.setOption({ // Echarts 配置 }); }, // Vue settings } ``` 以上代码表示在 Vue 组件中引用了 Echarts 库,并使用其提供的 init 方法初始化图表实例。然后通过 setOption 方法设置 Echarts 的配置项。 接着我们来看看 Axios 的用法。因为 Axios 是基于 Promise 的HTTP库,所以使用它一般是通过 Promise 的 then 方法进行回调: ``` import axios from 'axios' const apiUrl = 'http://example.com/api/users' axios.get(apiUrl).then(response => { // 对数据进行处理 }).catch(error => { console.log(error) }) ``` 以上代码中的 axios.get 方法通过 GET 方式对特定 url 的 api 进行请求,然后通过 then 方法处理获取到的数据。当然,请求也有可能会失败,因此可以通过 catch 方法捕获异常并输出错误信息。 最后,我们需要将 Axios 与 Echarts 组合起来,一起展示数据。为了简化流程,我们可以在 mounted 钩子中调用 Axios 的 get 方法来获取数据,然后将获取到的数据处理后传递给 Echarts 进行展示: ``` import axios from 'axios' import echarts from 'echarts' const apiUrl = 'http://example.com/api/users' export default { mounted() { axios.get(apiUrl).then(response => { const myChart = echarts.init(this.$refs.chart); myChart.setOption({ // Echarts 配置 series: [{ type: 'bar', data: response.data }] }); }).catch(error => { console.log(error) }) }, // Vue settings } ``` 以上代码中,在 mounted 钩子中使用 Axios 的 get 方法获取数据,并在 then 方法中进行 Echarts 的初始化以及相应的图表配置。由于获取数据格式一般为数组,因此这里的 Echarts 配置项使用了一个简单的柱状图进行展示。 综上,结合使用 Echarts、Axios 和 Vue 可以轻松获取和展示数据。通过 Axios 发起异步数据请求,获取数据后再进行相应的处理并传递给 Echarts 进行可视化展示。这种方法能够提高前端数据可视化的效率,也为开发人员提供了更多的工具。 ### 回答3: ECharts 是百度推出的一款基于 JavaScript 的数据可视化库,它使得开发人员可以很方便地绘制出各种各样的图表,比如线图、柱状图、饼图等等。在 ECharts 中,我们可以通过 axios、vue-resource 等工具来获取数据,这里我们着重介绍使用 axios 和 vue获取数据的方法。 在使用 axios 获取数据时,我们需要引入 axios 库,并在 Vue 中注册 axios,具体操作如下: ```javascript // 安装 axios npm i axios // 在 main.js 中引入 axios 并注册 import axios from 'axios' Vue.prototype.$axios = axios ``` 接下来我们就可以在 Vue 组件中使用 axios 来获取数据了,比如在 mounted 钩子函数中获取数据: ```javascript mounted() { this.getData() }, methods: { getData() { const self = this this.$axios.get('/api/data').then(function(response) { const data = response.data self.renderChart(data) }).catch(function(error) { console.log(error) }) }, renderChart(data) { // 使用数据渲染图表 } } ``` 在上面的代码中,我们通过 this.$axios 来调用 axios 的 get 方法来获取数据,然后在 Promise 的回调函数中处理获取到的数据,并调用渲染图表的方法来展示数据。 类似地,在使用 vue-resource 来获取数据时,我们需要引入并注册这个库: ```javascript // 安装 vue-resource npm i vue-resource // 在 main.js 中引入 vue-resource 并注册 import VueResource from 'vue-resource' Vue.use(VueResource) ``` 然后我们就可以在 Vue 组件中使用 vue-resource 来获取数据,比如在 initData 方法中获取数据: ```javascript methods: { initData() { const self = this this.$http.get('/api/data').then(function(response) { const data = response.data self.renderChart(data) }).catch(function(error) { console.log(error) }) }, renderChart(data) { // 使用数据渲染图表 } } ``` 在使用 vue-resource 时,我们可以通过 this.$http 来调用 get 方法来获取数据,然后在 Promise 的回调函数中处理获取到的数据和渲染图表。需要注意的是,vue-resource 需要全局注册才能在组件中使用,而 axios 则可以通过在组件中注入来使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值