Ձեր React հավելվածը կենդանացրեք անիմացիաներով


Ակտիվացրեք ձեր հավելվածը որոշ շարժումներով կամ ոճի այլ փոփոխություններով՝ օգտագործելով CSS անիմացիաները:

Անիմացիաները կարող են հիանալի միջոց լինել ձեր React հավելվածի օգտատերերի փորձը բարելավելու համար: Նրանք կարող են օգնել, որպեսզի փոխազդեցությունները ավելի հարթ լինեն, ինչպես նաև կարող են ապահովել տեսողական արձագանք կամ ուշադրություն հրավիրել որոշակի տարրի վրա:

Կան բազմաթիվ եղանակներ, որոնցով կարող եք աշխատել CSS անիմացիաների հետ՝ օգտագործելով React-ը, սկսած տեղական լուծումից մինչև երրորդ կողմի գրադարաններ:

Ինչու՞ օգտագործել անիմացիաներ React-ում:

Կան բազմաթիվ պատճառներ, թե ինչու կարող եք ցանկանալ անիմացիաներ օգտագործել ձեր React հավելվածում: Ամենատարածված պատճառներից մի քանիսը ներառում են.

  • Փոխազդեցությունները դարձնել ավելի բնական: Շարժապատկերները կարող են օգնել օգտատերերի փոխազդեցություններին ավելի բնական և հարթ դարձնել: Օրինակ, եթե դուք օգտագործում եք անջատիչ բաղադրիչ, կարող եք աշխուժացնել անջատման կոճակը «միացված» և «անջատված» վիճակների միջև: Մեկ այլ օրինակ է առաջընթացի գծերը, դուք կարող եք ստեղծել անիմացիոն առաջընթացի տող ձեր react հավելվածի էջերի համար:
  • Վիզուալ արձագանքի տրամադրում: Շարժապատկերները կարող են տեսողական արձագանք ապահովել օգտատիրոջը: Օրինակ, եթե օգտատերը սեղմում է կոճակը, դուք կարող եք անիմատացնել կոճակը՝ նշելով, որ հավելվածը գրանցել է այդ գործողությունը:
  • Օգտատիրոջ ուշադրությունը ուղղորդել: Անիմացիաները կարող են ուղղորդել օգտվողի ուշադրությունը որոշակի տարրի վրա: Օրինակ, եթե դուք ունեք մոդալ երկխոսություն, որը հայտնվում է էկրանին, կարող եք օգտագործել անիմացիա՝ օգտատիրոջ ուշադրությունը դրա վրա հրավիրելու համար:
  • Շտապողականության զգացում ստեղծելը: Շարժապատկերները կարող են հրատապության կամ կարևորության զգացում առաջացնել: Օրինակ, եթե դուք ունեք ժմչփի բաղադրիչ, որը հետհաշվարկ է կատարում, կարող եք օգտագործել անիմացիա՝ հրատապությունն արտացոլելու համար, քանի որ վերջնաժամկետը մոտենում է:

React բաղադրիչներին անիմացիա ավելացնելու մի քանի եղանակ կա: Երեքը, որոնց մասին դուք կսովորեք այստեղ օգտագործելու մասին, ներկառուցված ոճի անիմացիաներ են, react-animations գրադարանը և react-simple-animate գրադարանը:

Սկսեք ստեղծելով հիմնական react հավելված, ապա հետևեք ձեր ընտրած մեթոդին:

Մեթոդ 1. Օգտագործելով Inline Style Animations

Օրինակ, ենթադրենք, որ ցանկանում եք կենդանացնել բաղադրիչը, որպեսզի այն խամրի, երբ սեղմում եք կոճակը: Դուք կարող եք դա անել հետևյալ կոդով.

import React, { Component } from 'react';
 
class FadeInOut extends Component {
  constructor(props) {
    super(props);
 
    this.state = {
      isVisible: false
    };
  }
 
  render() {
    const styles = {
      opacity: this.state.isVisible ? 1 : 0,
      transition: 'opacity 2s'
    };
 
    return (
      <div>
        <div style={styles}>
          Hello, world!
        </div>
        <button onClick={this.toggleVisibility}>
          Toggle
        </button>
      </div>
    );
  }
 
  toggleVisibility = () => {
    this.setState(prevState => ({
      isVisible: !prevState.isVisible
    }));
  }
}
 
export default FadeInOut;

Այս օրինակում ոճի օբյեկտն ունի անթափանցիկություն և անցումային հատկություններ: Անթափանցիկությունը 0 է, երբ բաղադրիչը տեսանելի չէ, և 1, երբ այն տեսանելի է: Անցումային հատկությունը «անթափանցիկություն 2s» է, որը կհանգեցնի անթափանցիկության անցման երկու վայրկյանի ընթացքում, երբ այն փոխվի:

Կոճակը փոխում է բաղադրիչի տեսանելիությունը: Երբ ինչ-որ մեկը սեղմում է կոճակը, isVisible վիճակի փոփոխականը թարմացվում է, և բաղադրիչը կթուլանա կամ կթուլանա՝ կախված իր ներկայիս վիճակից:

Մեթոդ 2. React-animations Library-ի օգտագործումը

React բաղադրիչներին անիմացիաներ ավելացնելու մեկ այլ միջոց է օգտագործել գրադարան, ինչպիսին է react-անիմացիան: Այս գրադարանը տրամադրում է նախապես սահմանված անիմացիաների մի շարք, որոնք կարող եք օգտագործել ձեր React բաղադրիչներում:

React-անիմացիան օգտագործելու համար նախ պետք է տեղադրել գրադարանը՝

npm install react-animations --save

Դուք նաև պետք է տեղադրեք աֆրոդիտը, որը կախված է ռեակտիվ անիմացիաներից.

npm install aphrodite --save

Գրադարանները տեղադրելուց հետո կարող եք ներմուծել այն անիմացիաները, որոնք ցանկանում եք օգտագործել.

import { fadeIn, fadeOut } from 'react-animations';

Այնուհետև կարող եք օգտագործել ձեր բաղադրիչների անիմացիաները.

import React, { Component } from 'react';
import { StyleSheet, css } from 'aphrodite';
import { fadeIn, fadeOut } from 'react-animations';
 
const styles = StyleSheet.create({
  fadeIn: {
    animationName: fadeIn,
    animationDuration: '2s'
  },
  fadeOut: {
    animationName: fadeOut,
    animationDuration: '2s'
  }
});
 
class FadeInOut extends Component {
  constructor(props) {
    super(props);
 
    this.state = {
      isVisible: false
    };
  }
 
  render() {
    const className = this.state.isVisible ? css(styles.fadeIn) : css(styles.fadeOut);
 
    return (
      <div>
        <div className={className}>
          Hello, world!
        </div>
        <button onClick={this.toggleVisibility}>
          Toggle
        </button>
      </div>
    );
  }
 
  toggleVisibility = () => {
    this.setState(prevState => ({
      isVisible: !prevState.isVisible
    }));
  }
}
 
export default FadeInOut;

Այս օրինակը սկսվում է՝ ներմուծելով fadeIn և fadeOut անիմացիաները react-animations գրադարանից: Այնուհետև սահմանում է ոճերի օբյեկտ fadeIn և fadeOut անիմացիաներով, իսկ animationDuration-ը սահմանվում է երկու վայրկյան:

Կոճակը կփոխի բաղադրիչի տեսանելիությունը: Երբ ինչ-որ մեկը կտտացնում է այն, isVisible վիճակի փոփոխականը կթարմացվի, և բաղադրիչը կթուլանա կամ կթուլանա՝ կախված ներկայիս վիճակից:

Մեթոդ 3. Օգտագործելով react-simple-animate գրադարանը

React-simple-animate գրադարանը տրամադրում է React բաղադրիչներին անիմացիաներ ավելացնելու պարզ միջոց: Այն առաջարկում է դեկլարատիվ API, որը հեշտացնում է բարդ անիմացիաների սահմանումը:

Գրադարանից օգտվելու համար նախ անհրաժեշտ է տեղադրել այն.

npm install react-simple-animate --save

Այնուհետև կարող եք օգտագործել այն ձեր բաղադրիչներում.

import React, { Component } from 'react';
import { Animate, AnimateKeyframes} from "react-simple-animate";
 
class App extends Component {
  render() {
    return (
      <div>
        <Animate
          play
          start={{
            opacity: 0
          }}
          end={{
            opacity: 1
          }}
        >
          <div>
            Hello, world!
          </div>
        </Animate>
        <AnimateKeyframes
          play
          duration={2}
          keyframes={[
            { opacity: 0, transform: 'translateX(-100px)' },
            { opacity: 1, transform: 'translateX(0px)' }
          ]}
        >
          <div>
            Hello, world!
          </div>
        </AnimateKeyframes>
      </div>
    );
  }
}
 
export default App;

Animate բաղադրիչը մարում է div տարրում: Այն սկսվում է 0-ի անթափանցիկությամբ և ավարտվում է 1-ի անթափանցիկությամբ: Խաղի հենակետը դրված է true, ինչը կհանգեցնի անիմացիան ավտոմատ կերպով նվագարկվելու, երբ բաղադրիչը տեղադրվի:

AnimateKeyframes բաղադրիչը աշխուժացնում է div տարրը երկու վայրկյանի ընթացքում: Հիմնական կադրերի զանգվածը սահմանում է անիմացիայի սկզբի և ավարտի վիճակները: Առաջին առանցքային կադրի անթափանցիկությունը 0 է, իսկ translateX արժեքը՝ -100px: Երկրորդ առանցքային կադրի անթափանցիկությունը 1 է, իսկ translateX արժեքը՝ 0px:

Բարձրացնել օգտվողների ներգրավվածությունը անիմացիաներով

Այժմ դուք գիտեք որոշ ուղիներ, որոնցով կարող եք անիմացիաներ օգտագործել ձեր React հավելվածում: Դուք կարող եք օգտագործել անիմացիաներ՝ ձեր հավելվածի հետ օգտատերերի ներգրավվածությունը մեծացնելու համար:

Օրինակ, դուք կարող եք օգտագործել անիմացիա՝ օգտատերին առաջադրանքն ավարտելու համար պարգևատրելու համար: Սա կարող է լինել այնպիսի պարզ բան, ինչպիսին է կարճ «մանող» անիմացիա կամ ավելի բարդ անիմացիա, որը խաղում է, երբ օգտատերը ավարտում է խաղի մակարդակը:

Դուք կարող եք նաև անվճար տեղադրել ձեր React հավելվածը համացանցում՝ Github էջերի կամ Heroku-ի նման ծառայությունների միջոցով: