首页前端开发其他前端知识vue如何使用模拟的json数据查看效果模拟json数据

vue如何使用模拟的json数据查看效果模拟json数据

时间2024-03-27 16:34:03发布访客分类其他前端知识浏览1151
导读:相信很多人对“vue如何使用模拟的json数据查看效果模拟json数据”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 使用模拟的json数据查看效果 在数据交互这一块,很多时候是要和后台进行沟通配合的,作为初学者或...
相信很多人对“vue如何使用模拟的json数据查看效果模拟json数据”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助

使用模拟的json数据查看效果

在数据交互这一块,很多时候是要和后台进行沟通配合的,作为初学者或者纯前端的学习者,我们不可能经常有后台配合自己来展示,那么怎样才能模拟类似的效果呢?

后台传来的值其实也是一种json格式的数据,我们只需要模拟json形式的内容即可。

具体方法如下

1)封装一个json的文件,里面存放需要的数据,在webpack环境下放置在common文件夹中。

数据如下:

{

	"name":"张三",
	"age":20,
	"phone":"12345678",
	"sex":"女",
	"grades":[
	  {

	  	"语文":100,
	  	"数学":98,
	  	"英语":100,
	  	"计算机":95,
	  	"物理":88,
	  	"电路":89
	  }

	]
}

2)在指定的vue文件中引用这个data.json的数据

本例是order.vue

3)在order.vue中设置对应的值

export default{

        name: 'order',
        data(){

            return{

                name:"",
                age:0,
                phone:"",
                sex:"",
                grades:[],
                avg:0
            }

        }
,

4)使用数据进行模拟,封装在created() 中,获取需要的数据

created() {
    
			this.name = data.name;
    
			this.age = data.age;
    
			this.phone = data.phone;
    
			this.sex = data.sex;
    
	    	this.grades = data.grades;

			
		}
    ,

5)界面调用

            label>
    name:/label>
    span>
{
{
name}
}
    /span>
    br />
    
            label>
    age:/label>
    span>
{
{
age}
}
    /span>
    br />
    
            label>
    phone:/label>
    span>
{
{
phone}
}
    /span>
    br />
    
            label>
    sex:/label>
    span>
{
{
sex}
}
    /span>
    br />

vue模拟数据,数据交互

mock数据

1.定义

mock serve工具,通俗来说,就是模拟服务端接口数据,一般用在前后端分离后,前端人员可以依赖api开发,在本地搭建一个json服务,自己产生测试数据。即json-server就是个存储json数据的serve。

:json-server支持cors和jsonp跨域请求。

2.json-server

使用步骤:

  • 初始化项目:npm init -y
  • 安装json-server npm i json-server -d
  • 打开项目编写数据

在项目根目录下创建db.json,并写上合法的json数据。

  • 启动配置

在package.json下增加如下代码:

"scripts": {

    "server":"json-server db.json"
}
  • 运行

在命令行运行:npm run server

$nexttick()

1.应用场景:数据更新影响的(新的)dom时,使用$nexttick()。

数据交互

1.向服务器发送ajax请求,获取数据。

2.解决方案

通过xmlhttpreauest对象封装一个ajax;

function ajax(options) {
    
  //1.创建对象
    var xhr = new xmlhttprequest();
    
   //2.处理参数——get请求的参数在open中,即拼接在url后面,post请求的参数在send中
    var params = formsparams(options.data);

    // 3.判断请求方式
    if (options.type == "get") {
    
        xhr.open(options.type, options.url + "?" + params, options.async);

        xhr.send(null)
    }
 
     if (options.type == "post") {
    
        xhr.open(options.type, options.url, options.async);
    
        //请求头
        xhr.setrequestheader("content-type", "application/x-www-form-urlencoded");
    
        xhr.send(params);

    }

    //4.设置回调函数
    xhr.onreadystatechange = function () {
    
        //xhr.readystate == 4请求成功xhr.status == 200响应完成
        if (xhr.readystate == 4 &
    &
 xhr.status == 200) {
    
            options.success(xhr.responsetext);

        }

    }

    function formsparams(data) {
    
        var arr = [];

        for (var key in data) {
    
      //用=将字符串分隔,再将值插入到arr数组中
        //key是对象的键,data[key]是键对应的值
            arr.push(key+ "=" + data[key]);

        }
    
        return arr.join("&
    ");

    }

}

ajax({
    
    url: "地址",  // url---->
    地址
    type: "post",   // type --->
     请求方式
    async: true,   // async---->
 同步:false,异步:true
    data: {
        //传入信息
        name: "张三",
        age: 18
    }
,
    success: function (data) {
       //返回接受信息
        console.log(data);

    }

}
    )
  • 使用第三方自带的ajax库。(jquery)

使用步骤:

1.在.vue文件中,script标签外面引入jquery。

import $ from “jquery”;

2.直接发送请求,即可。注意发送请求的时机。

  • es6新增的fetch

格式:fetch(string url,配置),返回的是一个promise对象。

fetch(url,{

  method:
  headers:
  body:
//body:请求body信息,可能是一个 blob、buffersource、formdata、urlsearchparams 或者 usvstring 对象。注意 get 或 head 方法的请求不能包含 body 信息。
}
)
//get方式
fetch(url?id=001,
    {
method:'get'
}
    )
.then(response =>
     response.json()) //response.json()将后端返回的数据,转换为json格式
.then(data =>
     console.log(data))
.catch(e =>
 console.log("oops, error", e))
//post方式
fetch(url,{

		method:"post",
		headers: new headers({

		   'content-type': 'application/x-www-form-urlencoded' // 指定提交方式为表单提交
		}
    ),
	    body: "id=001&
name=张三疯" // post请求的参数
	}
    )
.then(response =>
     response.json())
.then(data =>
     console.log(data))
.catch(e =>
 console.log("oops, error", e))

特点:

1.fetch请求默认不带cookie,需要设置fetch(url,{ credentials:'include'} );

2.服务器返回400,500错误码时并不会reject,只有网络错误导致请求不能完成时,fetch才会被reject。

  • 使用第三方ajax封装成promise习惯的库。

1.定义:

一个基于promise的第三方库,可以用在浏览器(前端)和nodej.js(后端)中。

2.格式

axios({

        url : “地址“ 
		method: “ 提交方式”
		params:{
}
 地址栏携带的数据(get方式)
		data:{
}
 非地址栏携带数据(如:post,put等等),
		baseurl:如果url不是绝对地址,那么将会加在其前面。当axios使用相对地址时这个设置非常方便
}
    ).then(res=>
{
    
    console.log(res.data);

}
)

axios的完整格式和axios的别名(get和post)

  • axios({ 配置} ).then(成功回调(res)).catch(失败回调(res))
  • axios.get(url,{ 配置} ).then(成功回调(res)).catch(失败回调(res))
  • axios.post(url,{ 配置} ).then(成功回调(res)).catch(失败回调(res))

:响应体,数据是在res.data内部。

eg:get请求

axios({

        url:'getgoodslistnew.php',
       	 // method:'get',  默认是get请求
        params:{

			count:3
		}

}
    )
.then(res=>
    this.goodslist=res.data);

eg:post请求

1)data是字符串

当data是字符串时,请求头里的content-type是application/x-www-form-urlencoded,network中看到的数据类型是:formdata。

 axios(
      {
    
       	 method:'post',
       	 url:'regsave.php', 
         data:'username=jzmdd&
userpass=123'
      }
    )
    .then(res=>
{
  ……………………     }
    );
    

2)data是urlsearchparams对象

当data是urlsearchparams对象时,同data是字符串。

 var params = new urlsearchparams();
    
    params.append('username', 张三疯);
      
    params.append('userpass', '123');
  
 
    axios(
      {

       	 method:'post',
       	 url:'regsave.php', 
         data:params
      }
    )
    .then(res=>
{
  ……………………     }
    );

3)data是json对象

当data是json对象时,请求头里的content-type是application/json,network中看到的数据类型是:request payload。

axios({

        url:"/vips",
        method:"post",
        data:{

            name:this.name,
            pass:this.pass,
            sex:this.sex
        }
,
        baseurl:"http://localhost:3000"                
        }
    )
        .then(res=>
    console.log(res.data))

3.[面试]ajax,jquery ajax,axios和fetch的区别

ajax是最早出现的前后端交互技术,是原生js,核心使用的是xmlhttprequest对象,多个请求之间如果有先后关系,就会出现回调地狱。(利用promise解决哦)fetch是es6新增的,fetch是基于promise设计的。fetch不是ajax的进一步封装,而是原生js。fetch函数就是原生js,没有使用xmlhttprequest对象。

jquery ajax是原生ajax的封装;axios是原生ajax的封装,基于promise对象。axios也可以在请求和响应阶段进行拦截。它不但可以在客户端使用,也可以在node.js端使用。



到此这篇关于“vue如何使用模拟的json数据查看效果模拟json数据”的文章就介绍到这了,感谢各位的阅读,更多相关vue如何使用模拟的json数据查看效果模拟json数据内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

模拟

若转载请注明出处: vue如何使用模拟的json数据查看效果模拟json数据
本文地址: https://pptw.com/jishu/654342.html
在java中怎么样调用另一个类的办法 如何查看jvm和线程使用情况, 他的方法是什么

游客 回复需填写必要信息