ホームページ > ウェブフロントエンド > jsチュートリアル > vue-cliプロジェクトでmockjsを使用する方法の詳細な説明

vue-cliプロジェクトでmockjsを使用する方法の詳細な説明

小云云
リリース: 2018-01-04 09:48:57
オリジナル
4987 人が閲覧しました

この記事は主に vue-cli プロジェクトでの mockjs の使用法 (データの削除を要求する) を紹介しています。興味のある方は参考にしていただければ幸いです。

実際の運用では、バックエンド インターフェイスは後から公開されることが多いため、フロントエンド開発の多くはインターフェイスが提供されるまで待たなければなりません。これはフロントエンドにとって非常に受動的であるように思えます。バックエンド インターフェイスをシミュレートするために偽のデータを作成できます。答えは「はい」です。そこで今日は、バックエンド データを非常に便利にシミュレートし、バックグラウンド データの追加、削除、変更、確認などの操作を簡単に実装できる、非常に強力なプラグイン Mock.js を紹介します。あなたがしなければならないのは、mockjs を削除することだけです。実際の ajax のインターセプトを停止するだけです。それ以上は何もありません。

vueプロジェクトを構築する


# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
vue init webpack vue-mock
$ cd my-project
# 安装依赖
$ npm install
ログイン後にコピー

mockjsをインストールする


npm install mockjs --save-dev
ログイン後にコピー

プロジェクトを開く


npm run dev
ログイン後にコピー

mockjsフォルダーとmockjsを作成し、 .js はこのファイルをインポートします

この時点で、次のようなプロジェクト構造が表示されます

mockjs の使用

この時点で、mockjs のドキュメントを参照することができます。


// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1
  }]
})
// 输出结果
console.log(JSON.stringify(data, null, 4))
ログイン後にコピー

これで、やりたいことを実行できます

mock.jsでいくつかの簡単なデータをシミュレート


 const Mock = require('mockjs');
// 获取 mock.Random 对象
 const Random = Mock.Random;
 // mock一组数据
 const produceData = function (opt) {
  console.log('opt', opt);
  let articles = [];
  for (let i = 0; i < 30; i++) {
   let newArticleObject = {
    title: Random.csentence(5, 30), // Random.csentence( min, max )
    thumbnail_pic_s: Random.dataImage(&#39;300x250&#39;, &#39;mock的图片&#39;), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码
    author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
    date: Random.date() + &#39; &#39; + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串
   }
   articles.push(newArticleObject)
  }
  return {
   data: articles
  }
 }
Mock.mock(&#39;/news&#39;, /post|get/i, produceData);//当post或get请求到/news路由时Mock会拦截请求并返回上面的数据
ログイン後にコピー

vueでリクエスト


methods: {
   setNewsApi: function() {
    this.$http.post("/news", "type=top&key=123456").then(res => {
     console.log(res.data);
 
     this.newsListShow = res.data.data;
    });
   }
  }
ログイン後にコピー

エフェクトプレビュー

する別の削除プロセス

シミュレートされたデータ


let arr = []
 for (let i = 0; i < 30; i++) {
  let newArticleObject = {
   name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名
   content: Random.csentence(5, 30), // Random.csentence( min, max )
   id: i
  }
  arr.push(newArticleObject);
 }
 let list = function (options) {
  let rtype = options.type.toLowerCase(); //获取请求类型
  switch (rtype) {
   case &#39;get&#39;:
    break;
   case &#39;post&#39;:
    let id = parseInt(JSON.parse(options.body).params.id) //获取删除的id
    arr = arr.filter(function(val){
     return val.id!=id;//把这个id对应的对象从数组里删除
    });
    break;
   default:
  }
  return {
   data: arr
  } //返回这个数组,也就是返回处理后的假数据
 }
 Mock.mock(&#39;/list&#39;, /get|post/i, list);//get用于请求数据,post用于删除数据
ログイン後にコピー

vueで使用


methods: {
   setNewsApi: function() {
    this.$http.get("/list", "").then(res => {
     this.data = res.data.data;
    });
   },
   deleteList(data) { //删除数据
    let id = data.id;
    this.$http.post(&#39;/list&#39;, {
      params: {
       id: id
      }
     }).then(function(res) {
      console.log(res);
      this.data = res.data.data;
      alert(data.name + &#39;删除成功&#39;);
     }.bind(this))
     .catch(function(error) {
      console.log(error)
     });
   },
  }
ログイン後にコピー

エフェクトプレビュー

関連する推奨事項:

vuecli 、webpack モックjs を使用してバックエンドをシミュレートしますデータ

PHPで実装されたシンプルなモックjsonスクリプトの共有、phpmockjson script_PHPチュートリアル

mock.jsを使用してフロントエンド開発とバックエンドを独立させます

以上がvue-cliプロジェクトでmockjsを使用する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート