vue-antd-admin使用体验(三) 新建页面并导入目录

本篇, 我们来学习如何新建页面并展示在侧边栏中

我们以新建一个请求测试页(request_test)为例子

一. 新建页面

我们新建src\pages\api_test文件夹
在里面建立四个文件:

文件夹 用途
API_test.vue 页面
i18n.js 国际化配置
index.js 页面暴露脚本
index.less 页面less样式配置

我们先忽略国际化和样式 写一个简单的页面

1. index.js

这个文件是为了暴露页面给路由

import API_test from './API_test.vue'
export default API_test

2. API_test.vue

先写一个模板出来

<template>
  <h2>API_test</h2>
</template>

<script>
export default {};
</script>

<style>
</style>

二. 配置目录(非动态路由)

我们打开src\router\config.js
options对象里找到 path: '/',的对象, 其children属性的数组就对应着菜单的配置

我们添加一个菜单项

        {
          path: 'api_test',
          name: 'API测试页',
          meta: {
            icon: 'ie'
          },
          component: () => import('@/pages/api_test')
        },

我们打开页面发现已经配置好了路由

三. 编写具体页面

稍微写一下具体页面: 要能输入API接口, 能请求API, 能展示结果

根据之前的分析, 请求应该是通过服务发送的, 但是我们先把请求写在页面里, 稍后修改

<template>
  <div>
    <h2>接口测试</h2>
    <span>请输入API地址(只测试GET请求)</span>
    <a-input-search
      placeholder="input a API"
      size="large"
      @search="onSearch"
      v-model="api_str"
      :loading="loading"
    >
      <a-button slot="enterButton" type="primary"> 请求此API </a-button>
    </a-input-search>
    <a-divider></a-divider>
    <h3>{{ rev_data }}</h3>
  </div>
</template>

<script>
import { request, METHOD } from "@/utils/request";
export default {
  data() {
    return {
      api_str: "http://localhost:3000/string",
      loading: false,
      rev_data: "收到的响应",
    };
  },
  methods: {
    onSearch() {
      this.loading = true;
      request(this.api_str, METHOD.GET)
        .then((result) => {
          this.loading = false;
          this.rev_data = result;
        })
        .catch((err) => {
          this.rev_data = err;
        });
    },
  },
};
</script>

<style>
</style>

我们请求: http://localhost:3000/string 发现结果:

至此, 一个请求返回的功能做好了, 下面, 我们把请求函数写进service里去

四. 把请求改为在services之中实现

我们建立文件src\services\api_test.js

这样写请求

import { request, METHOD} from '@/utils/request'

export async function api_get_test(url) {
  return request(url, METHOD.GET)
}
export default {
  api_get_test
}

在index.js中统一暴露

import userService from './user'
import api_testService from './api_test'

export {
  userService,
  api_testService
}

如果, 我们的URL是固定的, 还可以写进src\services\api.js

下面开始调用刚刚写好的函数

src\pages\api_test\API_test.vue中引用并调用

<template>
  <div>
    <h2>接口测试</h2>
    <span>请输入API地址(只测试GET请求)</span>
    <a-input-search
      placeholder="input a API"
      size="large"
      @search="onSearch"
      v-model="api_str"
      :loading="loading"
    >
      <a-button slot="enterButton" type="primary"> 请求此API </a-button>
    </a-input-search>
    <a-divider></a-divider>
    <h3>{{ rev_data }}</h3>
  </div>
</template>

<script>
import {api_get_test} from "@/services/api_test";
export default {
  data() {
    return {
      api_str: "http://localhost:3000/string",
      loading: false,
      rev_data: "收到的响应",
    };
  },
  methods: {
    onSearch() {
      this.loading = true;
      api_get_test(this.api_str)
        .then((result) => {
          this.loading = false;
          this.rev_data = result;
        })
        .catch((err) => {
          this.rev_data = err;
        });
    },
  },
};
</script>

<style>
</style>

五. 国际化

我们在之前创建的src\pages\api_test\i18n.js中进行国际化

就我们这个页面来说, 以下文字内容是需要国际化的

我们在国际化文件中写如下内容:

module.exports = {
  messages: {
    CN: {
      title: '接口测试',
      description: '请输入API地址(只测试GET请求)',
      button_test: '请求此API'
    },
    HK: {
      title: '接口測試',
      description: '請輸入API地址(只測試GET請求)',
      button_test: '請求此API'
    },
    US: {
      title: 'API Test',
      description: 'Please enter a API address (only test GET requests)',
      button_test: 'Request this API'
    }
  }
}

src\pages\api_test\API_test.vue中 我们添加国际化引用

需要国际化的地方用:{{$t('国际化变量名')}}来引用,
现在src\pages\api_test\API_test.vue内容如下:

<template>
  <div>
    <h2>{{$t('title')}}</h2>
    <span>{{$t('description')}}</span>
    <a-input-search
      placeholder="input a API"
      size="large"
      @search="onSearch"
      v-model="api_str"
      :loading="loading"
    >
      <a-button slot="enterButton" type="primary"> {{$t('button_text')}} </a-button>
    </a-input-search>
    <a-divider></a-divider>
    <h3>{{ rev_data }}</h3>
  </div>
</template>

<script>
import { api_get_test } from "@/services/api_test";
export default {
  name: "Api_test",
  i18n: require("./i18n"),
  data() {
    return {
      api_str: "http://localhost:3000/string",
      loading: false,
      rev_data: "收到的响应",
    };
  },
  methods: {
    onSearch() {
      this.loading = true;
      api_get_test(this.api_str)
        .then((result) => {
          this.loading = false;
          this.rev_data = result;
        })
        .catch((err) => {
          this.rev_data = err;
        });
    },
  },
};
</script>

<style>
</style>

现在已经可以国际化了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352