Web動(dòng)效在Web應(yīng)用中所起的作用就不說了。愛掏網(wǎng) - it200.com有人說,Web動(dòng)效可以給Web起到錦上添花效果,也有人說,Web動(dòng)效可以增加用戶的粘性和吸引力。愛掏網(wǎng) - it200.com就目前來說,在Vue框架體系下,可以使用
組件來構(gòu)建Web動(dòng)畫效果,其實(shí)在React體系下,也可以使用類似的方式來給Web元素添加動(dòng)畫效果。愛掏網(wǎng) - it200.com接下來,就和大家一起探討,在React框架如何將CSS的trasition
和animation
運(yùn)用到元素中,讓W(xué)eb元素動(dòng)起來。愛掏網(wǎng) - it200.com如果你對(duì)這方面知識(shí)感興趣的話,歡迎繼續(xù)往下閱讀。愛掏網(wǎng) - it200.com
不知道你是否像我一樣,在使用React構(gòu)建的組件,在添加動(dòng)效的時(shí)候,總是和自己期望的有所差異。愛掏網(wǎng) - it200.com比如說,構(gòu)建一個(gè)彈窗,彈窗出來的時(shí)候有動(dòng)效,彈窗移除的時(shí)候沒有動(dòng)效。愛掏網(wǎng) - it200.com就像下面這樣的一個(gè)效果:
你可能已經(jīng)發(fā)現(xiàn)了,彈窗窗現(xiàn)的時(shí)候,會(huì)有一個(gè)fadeIn
效果,但彈窗移除時(shí)并看不到fadeOut
效果。愛掏網(wǎng) - it200.com這主要是因?yàn)椋瑥棿耙瞥龝r(shí),整個(gè)彈窗的DOM直接就刪除了,因此也沒有機(jī)會(huì)讓你能看到fadeOut
效果。愛掏網(wǎng) - it200.com那么在React構(gòu)建的應(yīng)用中,如何來改善這一點(diǎn)呢?這也是接下來要和大家一起探討的話題。愛掏網(wǎng) - it200.com
在Vue框架中提供了
組件,在不同的生命周期中添加相應(yīng)的類名,并在相應(yīng)的類名中設(shè)置樣式,從而給Vue組件添加動(dòng)效:
在React中,我們可以使用一個(gè)類似Vue的
組件,即 react-transition-group
可以給React組件添加動(dòng)畫效果。愛掏網(wǎng) - it200.com
react-transition-group
提供了四個(gè)組件,
、
、
和
。愛掏網(wǎng) - it200.com比如下面這個(gè)示例,就是采用
組件構(gòu)建的一個(gè)帶有動(dòng)效的組件:
// src/index.js
import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import { Container, Button, Alert } from 'react-bootstrap';
import { CSSTransition } from 'react-transition-group';
import './styles.css';
function ModalComponent() {
const [showButton, setShowButton] = useState(true);
const [showMessage, setShowMessage] = useState(false);
return (
{showButton && (
)}
setShowButton(false)}
onExited={() => setShowButton(true)}
>
setShowMessage(false)}
>
Animated alert message
This alert message is being transitioned in and
out of the DOM.
);
}
ReactDOM.render(
,
document.getElementById('root')
);
包月會(huì)員查看