微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vue&&react项目更好实践

react项目开发记录

1.antd RangePicker 设置当前一年的选择时间

<RangePicker
  style={{ width: "100%" }}
  value={[this.state.startValue,this.state.endValue]}
  onChange={this.handlePickerchange}
  disabledDate={this.handledisabledDate}
  format="YYYY-MM-DD"
 />
  // 选择当前年
  handledisabledDate = (time) => {
    const timeYear = time.get('year');  // 当前年
    // console.log(timeYear,'timeYear')
    const currentYear = moment().format('YYYY'); //今年
    // console.log(currentYear,'currentYear')
    return timeYear != currentYear;
  }

2.国际化方案(react-intl-universal)

npm i react-intl-universal -S

import intl from 'react-intl-universal'

import { FormattedMessage} from 'react-intl';
intl.get('xx key').d('认语言')
<FormattedMessage id='xxx key' defaultMessage="认语言"/>

vue项目开发记录

1.国际化注入全局使用

// 初始化加载语言包
const i18n = new VueI18n({
    locale: xxx语言标识, 
    messages: require('./language/index'), // 语言包
})
​
// 国际化语言包方法注入window下(方便外部用)
window.i18nGlobal = i18n

2.Map数据类型转成数组下拉格式

// 将 map 数据转换为 Select组件 数组 不需要 all 传 false
const transformData = (mapData, isAll = true) => {
    const all = isAll ? [{ label: window.i18nGlobal.t('xxxkey') || 'all', key: '' }] : []
    const selectData = Object.keys(mapData).map(item => {
        return { label: mapData[item], key: item }
    })
    return all.concat(selectData)
}
export const testMap = {
    '0': window.i18nGlobal.t('xxxkey') || '认值',
    '1': window.i18nGlobal.t('xxxkey') || '认值',
}
​
export const testMapArry = transformData(testMap, false)

3.禁止键盘弹出(h5)

// vant 输入框
<van-field
    v-model="value"
    name="xxx"
    :right-icon="自定义图标"
    @focus="forbidKeyBoard"
/>
​
// 禁止键盘弹出
forbidKeyBoard(){
    document.activeElement.blur();
},

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐