zoukankan      html  css  js  c++  java
  • React-使用react-move实现从下到上进入的动画 +使用react-intl实现国际化

    一、使用react-move实现从下到上进入的动画

    1.引入:
    import { Animate } from 'react-move';
    

      

    2.规定要添加动画的元素的useState:
    const [show, setShow] = useState(false);
    
        useEffect(() => {
            setShow(true);
        }, []);
    3.元素代码:
    <Animate
                                    start={{
                                        opacity: 0,
                                        y: index===0 ? 100 : 300
                                    }}
                                    update={() => ({
                                        opacity: 1,
                                        y: [show ? 0 : index===0 ? 100 : 300],
                                        timing: { duration: 600, ease: easeQuadInOut, delay: index===0 ? 1000 : 2000 }
                                    })}
                                    >
                                        {state => (
                                            <div className='section-joinus__select' key={item.country} style={{
                                                    transform: `translateY(${state.y}%)`,opacity: 1
                                                }}>
                                                <div className='country'><i className='i-pos'><Location/></i><span>{item.country}</span><i className='i-up'><ArrowUp/></i></div>
                                                <div className='option' style={{height: index===0 ? options ? '0': '200px': options? '200px': '0'}}>
                                                    <ul>
                                                        <li>{item.work1}</li>
                                                        <li>{item.work2}</li>
                                                    </ul>
                                                    <button>{item.btntxt}</button>
                                                </div>
                                            </div>
                                        )}
                                    </Animate>
    

    4.插件2019-09-19官网

    https://www.npmjs.com/package/react-move



    二、国际化

     

    1.安装依赖

    npm的话命令是:npm install react-intl --save

    yarn的话命令是:yarn add react-intl --save

    2.src文件目录下新建locale目录,新增中英文两个js文件:

     

     一个用来规定英文,一个规定中文:

    const en_US = {  
      'component.about.btn': '英文示例',
    }
    export default en_US;
    

      

    const zh_CN = {
      'component.about.btn': '中文示例',
    }
    export default zh_CN;

    前面是id,用来在组件中引用,后面是对应的文字。

     

    3.app.js中引入包裹的组件与两个js语言文件,并进行当前语言环境的判断:

    import { IntlProvider } from 'react-intl';
    import zh_CN from '../../locales/zh-CN';
    import en_US from '../../locales/en-US';
    
    const App = () => {
        const locale = navigator.language.split('_')[0] || 'en-US';
        return (
            <React.Fragment>
                <IntlProvider locale={locale === 'zh-CN' ? 'zh' : 'en'} messages={locale === 'zh-CN' ? zh_CN : en_US}> 
                    <Nav />
                    <div className="page-content">
                        <About />
                    </div>
                    <Footer />
                </IntlProvider>
            </React.Fragment>
        );
    };
    export default App;
    

      

    4.组件中使用FormattedMessage ,规定属性id即可:

    import { FormattedMessage } from 'react-intl';
    

     

     

    5.官网npm地址:

  • 相关阅读:
    poj2386 Lake Counting
    poj 1852 Ants
    Luogu P2419 [USACO08JAN]牛大赛Cow Contest
    Luogu P2336 [SCOI2012]喵星球上的点名
    Luogu P2463 [SDOI2008]Sandy的卡片
    Luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
    Luogu P4248 [AHOI2013]差异
    【NOI2008】志愿者招募
    Luogu P2743 [USACO5.1]乐曲主题Musical Themes
    P3723 [AH2017/HNOI2017]礼物
  • 原文地址:https://www.cnblogs.com/nangras/p/11549325.html
Copyright © 2011-2022 走看看