当前位置: 首页 > news >正文

网站管理助手 建设中seo宣传网站

网站管理助手 建设中,seo宣传网站,网站制作策划建设大纲,自己做网站什么类型的比较好vue2企业级项目(三) 引入mockjs,i18n 1、mockjs 项目下载依赖 npm install --save-dev mock根目录创建mock文件夹,并创建mock/index.js import Mock from "mockjs";// 设置全局延时 没有延时的话有时候会检测不到数据…

vue2企业级项目(三)

引入mockjs,i18n

1、mockjs

  1. 项目下载依赖

    npm install --save-dev mock
    
  2. 根目录创建mock文件夹,并创建mock/index.js

    import Mock from "mockjs";// 设置全局延时 没有延时的话有时候会检测不到数据变化 建议保留
    Mock.setup({timeout: "300-600",
    });// 引入全部的modules内全部js文件,并分流进行处理
    const modulesFiles = require.context("./modules", true, /\.js$/);
    const modules = modulesFiles.keys().reduce((modules, modulePath) => {const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1"); // 正则提取子文件名称const value = modulesFiles(modulePath); // 获取文件对象modules[moduleName] = value.default; // 获取文件默认导出return modules;
    }, {});// 动态添加mock
    for (let fileName in modules) {// 因为mock匹配规则是从上到下的,所以要对path长度进行排序// 避免提前匹配导致错误问题modules[fileName].sort((last, next) => next.path.length - last.path.length,);// 添加mock匹配规则modules[fileName].forEach((item) => {let regexp = new RegExp(process.env.VUE_APP_PREFIX + item.path);Mock.mock(regexp, item.method, item.dispose.action);});
    }// mock验证 - 给ajax用的
    export function proxyValid(url, method, date) {for (let fileName in modules) {modules[fileName].forEach((item) => {if (item.path === url && item.method === method) {const validRes = Mock.valid(item.dispose.template, date);if (validRes && validRes.length === 0) return true; // 验证通过// 验证不通过console.group(url.replace(/http:\/\//, ""));console.log("valid response data :>>> url: ", url);console.log("valid response data :>>> validMsg: ", validRes);console.groupEnd();}});}
    }// mockRandom继承添加创出电话号码
    Mock.Random.extend({phone: function() {let phonePrefix = ["132", "135", "189", "135", "189"]; // 自己写前缀哈return Mock.Random.pick(phonePrefix) + Mock.mock(/\d{8}/); // Number()},
    });export default Mock;
    
  3. 创建mock/mockPort.js

    import Qs from "qs";
    import { checkDataType } from "@/utils/utils";function MockPort({ template, action }) {this.template = template; // 模板this.action = action.bind(this); // 返回值// 解析返回get参数方法this.queryBackRes = function(url = "") {const urlArr = url.split("?");const dataString = urlArr[1] || "";return Qs.parse(dataString);};// 解析返回post参数方法this.paramsBackRes = function(body) {if (checkDataType(body, "string")) return JSON.parse(body);else return body;};// 分页获取listthis.getPagingList = function(pagination, list) {let { pageNumber, pageSize } = pagination;const startIndex = (pageNumber - 1) * pageSize; // 开始截取位置const endIndx = pageNumber * pageSize; // 结束截取位置const totalPages = Math.ceil(list.length / pageSize); // 总页码数let rows =pageNumber > totalPages ? [] : list.slice(startIndex, endIndx);return { rows, total: list.length };};// 检查是否携带tokenthis.checkToken = function(options, resObj) {let query = this.queryBackRes(options.url);if (query.id_token === "123456789") return resObj;return {statusCode: 401,code: -1,msg: "账户验证失败,请重新登录",data: null,};}.bind(this);
    }export default MockPort;
    
  4. 创建mock/modules/test.js示例

    import MockPort from "../mockPort"; // 解析获取git数据function testGet() {return new MockPort({template: {status: 1,data: "test",},action(options) {let query = this.queryBackRes(options.url);this.template.data += query;return this.template;},});
    }function testPost() {return new MockPort({template: {status: 1,data: "test",},action(options) {let query = this.paramsBackRes(options.body);this.template.data += query;return this.template;},});
    }export default [{ path: "/testGet", method: "get", dispose: testGet() },{ path: "/testPost", method: "post", dispose: testPost() },
    ];
    
  5. src目录下创建api/mock.js示例

    import request from "@/utils/request.js";export const testGet = (params) => request.get("/testGet", params);
    export const testPost = (params) => request.post("/testPost", params);
    
  6. main.js添加一下内容

    ...if (process.env.NODE_ENV === "development") require("../mock/index");
    ...
    
  7. 根目录创建vue.config.js

    module.exports = {devServer: {open: true,port: "8080",overlay: {warning: false,error: false,},},
    };
    

2、i18n

  1. 项目下载依赖

    npm install vue-i18n@8.26.2 --save
    
  2. src目录下创建i18n/index.js文件

    import Vue from "vue";
    import VueI18n from "vue-i18n";
    import { getStorage } from "@/utils/storage.js";Vue.use(VueI18n);// 自动引入modules文件
    const modulesFiles = require.context("./modules", true, /\.js$/);const messages = modulesFiles.keys().reduce((modules, modulePath) => {const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, "$1");const value = modulesFiles(modulePath);modules[moduleName] = value.default;return modules;
    }, {});const i18n = new VueI18n({locale: getStorage("local") || process.env.VUE_APP_locale,messages,
    });export default i18n;
  3. main.js引入使用i18n,和vuex生成的store是一样的

  4. 创建i18n/modules/en.jsi18n/modules/zh.js

    /***********en.js***************/
    export default {hello: "Hello",
    };/***********zh.js***************/
    export default {hello: "你好",
    };
  5. 动态切换语言包

    changeLanguage(type) {this.$i18n.local = type ? "en" : "zh"
    }
    
http://www.hkea.cn/news/853984/

相关文章:

  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文
  • 订阅号可以做网站吗南宁seo外包服务商
  • 邢台哪儿做网站便宜宁波 seo排名公司
  • 深圳网站优化咨询网上广告怎么推广
  • 网站右击无效是怎么做的网络营销产品
  • 中宣部网站政治建设网站服务器是什么意思
  • 淮安网站定制徐州seo外包公司
  • 嘉兴类网站系统总部网站建设技术解决方案
  • 做网站的教科书外包网络推广公司推广网站
  • 模板名字 wordpress优化大师如何删掉多余的学生
  • 3d网站建设制作百度关键词优化手段
  • 新手做那些网站比较好东莞企业网站排名
  • 欧美风格网站360指数
  • 优秀网站建设公司电话下列哪些店铺适合交换友情链接
  • 58同城乌鲁木齐网站建设重庆网站到首页排名
  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄
  • 江苏网站开发外链网站大全
  • 网站代备案流程图百度关键词优化排名技巧
  • 石狮建设局网站今日头条站长平台
  • 修改公司网站网页站长素材音效
  • 网站速度测速免费访问国外网站的app
  • 常州网站搭建公司宣传推广渠道有哪些
  • 中国建设监理网站广告网络
  • 网站维护费用怎么收路由优化大师官网