umijs学习(connect、useIntl 、history )

1、connect

connect就是链接UI组件和model的。

import { connect } from 'umi';

export default connect(state => ({//state会返回所有model层命名空间的state
  deviceList:state.deviceList
}))(DeviceManager);

//DeviceManager 为UI组件
const DeviceManager = (props) => {
    const {deviceList}=props
    return(
     <div></div>    
    )
}

state的值:

  model层代码

const DistrictModel = {
  namespace: 'deviceList',
  state: {
    accountListParams: {},
    accountList: [],
    currentAccountDeviceList: [],
  },
  effects: {  
  },
  reducers: {
  }
};
export default DistrictModel;

2、useIntl 前端国际化

import { useIntl } from 'umi';

useIntl().formatMessage({ id: 'account.select.placeholder.status' })


//路径 locales\zh-CN\account.js
export default {
  'account.select.placeholder.status': '状态',
   //……
}

3、history 用于路径跳转与路由信息读取

// 可用于获取当前路由信息
import { history } from 'umi';// location 对象,包含 pathname/search/hash
console.log(history.location.pathname)
console.log(history.location.search)
console.log(history.location.hash)

// 可用于路由跳转// 跳转到指定路由
history.push('/list')

// 带参数跳转到指定路由
history.push('/list?a=b')
history.push({
    pathname: '/list',
    query: {
        a: 'b'
    }
})

// 跳转到上一个路由
history.goBack();

// 可用于路由监听
import { history } from 'umi';
const unlisten = history.listen((location, action) => {
    console.log(location.pathname)
})
unlisten()

 

posted @ 2022-03-24 20:45  梁涛999  阅读(1508)  评论(0编辑  收藏  举报