美文网首页
dva.js和umi.js

dva.js和umi.js

作者: Young_Jeff | 来源:发表于2019-04-28 13:30 被阅读0次

最近公司的项目有用到dva框架,这里做下学习总结;
菜鸟一枚,如有错误,欢迎指正。

dva是什么

一个轻量级的应用框架,
ta糅合了react-router、redux、fetch和用于处理异步的redux-saga

怎么用

1. 安装脚手架
  npm install dva-cli -g
  or
  yarn install dva-cli -g
2. 创建新应用
  dva new app-demo
3. 启动项目
  npm start
  or
  yarn run start

webpack配置

dva把配置文件以.webpackrc显示
首先,更改.webpackrc为.webpackrc.js,
然后写入配置文件(注意:原有的数组改成对象的形式)。

  • 反向代理配置(注意:检查 /api 是否匹配域名)
export default {
  "extraBabelPlugins": [
    ["import", { "libraryName": "antd", "libraryDirectory": "es", "style": "css" }]
  ],
  "proxy": {
    "/api": 
      "target": "https://baidu.com:8000",
      "changeOrigin": true,
    }
  },
  "disableCSSModules": true
}
  • 配置环境变量,方便调试不同环境
    1.引入cross-env
npm install --save-dev cross-env

2.修改package.json文件

{
  "scripts": {
    "start": "umi dev",
    "start_test": "cross-env UMI_ENV=test umi dev",  //增加此行
    "start_prod": "cross-env UMI_ENV=prod umi dev",  //增加此行
    "build": "umi build",
    "test": "umi test",
    "lint": "eslint {src,mock,tests}/**/*.{js,jsx} --fix",
    "precommit": "lint-staged"
  },
}

3.项目根目录下新建.umirc.test.js.umirc.prod.js两个文件

image.png
文件内定义不同环境对应的变量
export default {
  define: {
    'process.env.envType': 'test', // 此处可以设置环境变量,
  }
}

4.然后分别运行不同脚本,就能拿到对应的环境值

配置browserHistory (umi版本需3.x以上)

=====>项目结构如图


image.png

(1).配置.umirc文件,增加以下内容

export default defineConfig({
  publicPath: './',  //相当于react脚手架项目中的homepage
  base: '/user',  //设置路由前缀,通常用于部署到非根目录。比如,你有路由 / 和 /users,然后设置了 base 为 /foo/,那么就可以通过 /foo/ 和 /foo/users 访问到之前的路由;(需要和konga网关配置相同)
  history: { type: 'browser' },  //可不写,默认就是browser
  nodeModulesTransform: {
    type: 'none',
  },
  ...
});

若部署到服务器后不生效,需接着第2步配置

(2)项目根目录下增加nginx.conf文件

server {
    listen       80;
    server_name  localhost;

    gzip  on;
    gzip_comp_level 3;
    
    gzip_types
    # text/html is always compressed by HttpGzipModule
    text/css
    text/javascript
    text/xml
    text/plain
    text/x-component
    application/javascript
    application/json
    application/xml
    application/rss+xml
    font/truetype
    font/opentype
    application/vnd.ms-fontobject
    image/svg+xml;

    gzip_static on;

    server_tokens off;

    root   /usr/share/nginx/html;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options nosniff;


    location / {     
        index  index.html index.htm;
        add_header Cache-Control "public, max-age=0, must-revalidate";
        try_files $uri $uri/ /index.html;
    }

    location ~* \.(css|js)$ {
        add_header Vary Accept-Encoding;
        add_header Cache-Control "public, max-age=0, must-revalidate";
    }

     location ~* \.(png|jpeg|jpg)$ {
        add_header Cache-Control "cache-control: public, max-age=31536000, immutable";
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

(3)Dockerfile文件中引入nginx.conf文件

COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY ./dist/  /usr/share/nginx/html/

相关文章

  • dva.js和umi.js

    最近公司的项目有用到dva框架,这里做下学习总结;菜鸟一枚,如有错误,欢迎指正。 dva是什么 官网:dva.js...

  • ant-design-pro uni.js & dev.js

    - 构造model 和 services 新建的文件名字和src/pages相同,umi.js会自动注入同名业务代...

  • 解决umi框架打包不及时更新问题

    在config.js中添加hash:true字段,保证umi.js 和 umi.css附带hash值,防止浏览器缓...

  • dva.js 上手

    dva.js 简介 dva 是阿里前端架构师 sorrycc 带 team 研发的一套轻量级前端框架,其目的是尽量...

  • dva.js 上手

    初始化 安装 dva-cli 用于初始化项目: 创建项目目录,并进入该目录: 初始化项目: 然后运行 npm st...

  • dva.js 解读

    学习了dva,感觉好棒,在使用redex、redux-thunk中的中的疑问在dva中都有效的解决了。1、mode...

  • Dva.js总结

    1.why Dva dva 是基于现有应用架构 (redux + react-router + redux-sag...

  • [react]初识Umi.JS

    什么是Umi.js? umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。你可以将它简单的理解为...

  • umi.js model模板

  • Dva.js 快速上手指南

    先说些废话 最近在开发React技术栈的项目产品,对于数据状态的管理使用了Dva.js,作为一个资深的ow玩家,我...

网友评论

      本文标题:dva.js和umi.js

      本文链接:https://www.haomeiwen.com/subject/rksdnqtx.html