Red de conocimiento informático - Material del sitio web - Cómo usar Mockjs para simular datos de backend

Cómo usar Mockjs para simular datos de backend

Lo que les traigo esta vez es cómo usar Mockjs para simular datos de back-end. ¿Cuáles son las precauciones para usar Mockjs para simular datos de back-end? El siguiente es un caso práctico.

El uso de Mockjs puede simular datos por adelantado, siempre que la interfaz de datos y los datos se acuerden con el backend. Utilice simulaciones para generar los datos que desee, separando así el desarrollo front-end y back-end.

Sus principales funciones son:

Generar datos de simulación basados ​​en plantillas de datos.

Genere datos de simulación basados ​​en plantillas HTML.

Interceptar y simular solicitudes ajax.

Especificación gramatical

La especificación de sintaxis de Mock.js consta de dos partes:

1. Definición de plantilla de datos (DTD)

2. Definición de marcador de posición de datos (DPD)

Especificación de definición de plantilla de datos DTD

Cada atributo en la plantilla de datos consta de 3 partes: nombre de atributo, regla de generación, valor de atributo:

//Nombre del atributo nombre

// Generar regla regla

// Valor del atributo valor

'nombre|regla': valor< /p

Nota:

El nombre del atributo y la regla de generación están separados por una barra vertical.

La generación de reglas es opcional. Hay siete formatos para generar reglas:

'nombre|min-max': valor

'nombre|count': valor 'nombre|min-max.dmin-dmax': valor 'nombre|min-max.dcount': valor 'nombre|recuento..dmin-dmax': valor 'nombre|recuento.dcount': valor 'nombre paso': valor

El significado de las reglas generadas dependen del tipo de valor del atributo.

Los valores de los atributos pueden contener marcadores de posición @. El valor de la propiedad también especifica el tipo de valores iniciales y finales.

Ejemplo 1:

Mock.mock({

'número1|1-100.1-10': 1,

'número2 |123.1-10': 1,

'número3|123.3': 1,

'número4| 123.10': 1.123

})

// =gt;

{

"número1": 12,92,

"número2": 123,51,

" number3": 123.777,

"number4": 123.1231091814

}

Ejemplo 2: invertir la expresión regular regexp para generar una cadena coincidente.

Se utiliza para generar cadenas con formato personalizado:

Mock.mock({

'regexp1':/[a-z][A-Z][0-9]/,

'regexp2':/\w\W\s\Sd\D/,

'regexp3':/\d{5,10}/

})

// =gt;

{

'regexp1': 'pJ7',

'regexp2': 'F)\ fp1G',

'regexp3': '561659409'

}

Ejemplo 3:

//cadena representa el nombre del atributo

p>

// 3 representa el número de repeticiones después del valor del atributo

Mock.mock({

"string|3": "★"

})

Resultado:

//El número de estrellas es 3

{

"string" : "★★ ★★★ "

}

Ejemplo 4:

// num es el nombre del atributo

// Produce un valor mayor que o igual a 1 y menor que o Un número entero igual a 100, el valor del atributo 100 solo se usa para determinar el tipo

Mock.Mock.Mock({

) es un simulacro objeto. simulado({

"num|1-100": 100

})

Resultado:

{

"número": 8

}

Especificación de definición de marcador de posición de datos DPD

El marcador de posición es solo un marcador de posición en la cadena de valor del atributo, no aparecerá en el valor final de la propiedad.

El formato del marcador de posición es:

@Placeholder

@Placeholder(Parámetro [, Parámetro])

Nota:

p>

@ identifica la siguiente cadena como marcador de posición.

El marcador de posición hace referencia al método en Mock.Random.Random.extend() para extender el marcador de posición personalizado.

Los marcadores de posición también pueden hacer referencia a atributos en plantillas de datos. Los marcadores de posición tienen prioridad sobre los atributos en las plantillas de datos. Los marcadores de posición admiten rutas relativas y absolutas. mock.mock({

nombre: {

primero: '@FIRST',

medio: '@FIRST',

último: '@LAST',

completo: '@first @middle @last'

Completo: '@first @middle @last'

Para ser Marcadores de posición personalizados extendidos, también puede hacer referencia a propiedades en la plantilla de datos.

@último'

}

})

// =gt;

{

"nombre" : {

"primero": "Charles",

"medio": "Brenda",

"último": "López",

"full": "Charles Brenda Lopez"

}

}

Ejemplo de solicitud de datos falsos mediante jQuery ajax

1. Primero, introduzca mockjs y jquery (aquí, use ajax encapsulado en jq para enviar la solicitud)

lt;script type="text/javascript" src="js/jquery-1.11.3. min.js "gt;lt;/scriptgt;

lt;script src=" es la URL de la siguiente solicitud ajax y el simulacro interceptará la URL.

Intercept'

// El segundo parámetro aquí es la plantilla de datos de la plantilla, el simulacro devolverá los datos generados por la plantilla

Mock.mock('', {

'nombre': '@nombre',

'edad|1-100': 100,

'ciudad': '@ciudad'

} );

3. solicitud de resultado de envío ajax

$.ajax({

url: '',

tipo de datos: ' json '

}).done(function(data, status, xhr) {

console.log( JSON.stringify(data)); //{"name":" Mark Lee", "age": 4, "city": "Liaoyang City"}

});

Utilice mockjs en vuecli

Primera instalación

npm install mockjs

Creé un nuevo simulacro en scripts

Creé un nuevo archivo mockdata.js en scripts

. El contenido es el siguiente:

importar Mock desde 'mockjs';

const data = Mock.mock({

// El valor de la lista de atributos es un valor que contiene de 1 a una matriz de 10 elementos

'foods|10-50': {

'name': "@ctitle(2, 10)",

" img": "@image('600x600', #b7ef7c)",

" brief": "@csentence(1, 50)",

"precio|0- 20.0 -2": 1,

"num": 0,

"minusFlag": verdadero,

"time": "@time",

p>

"peisongfei|0-100.0-2": 1,

"límite|0-50": 1

}],

"ventas|10-50": {

// La identificación del atributo es un número que se incrementa automáticamente comenzando en 1 y se incrementa en 1 cada vez

'nombre': "@ctitle ( 2, 10)",

'img': "@image('600x600', #b7ef7c)",

'breve': "@csentence(1, 50) " ,

"precio|0-100.0-2": 1,

"num": 0,

"minusFlag": p> "minusFlag" : verdadero,

"time": "@time",

"peisongfei|0-100.0-2": 1,

"limit|0- 100 ": 1

}]

});

exportar datos {

predeterminados

}

/ p>

A continuación, en el grupo vue donde desea utilizar datos simulados

En la página del archivo, escriba

importar datos simulados desde "@/scripts/mockdata.js";

Para hacer referencia a los datos, escriba directamente en su método, solo cite Los datos de simulación que acabas de crear servirá. Por ejemplo:

new Promise((resolve, rechazar) =gt; {

that.foods =mockdata.data.foods; //simplemente apunta directamente al objeto de datos falso que generado

that.foodsListLen = that.foods.length

}).catch(err=gt; {

console.log(err)

}) Creo que a través de los casos de este artículo, usted ha dominado este método. Para obtener más información interesante, preste atención a otros artículos relacionados en Gxl.com.

Lectura recomendada: