Web動效在Web應用中所起的作用就不說了。愛掏網 - it200.com有人說,Web動效可以給Web起到錦上添花效果,也有人說,Web動效可以增加用戶的粘性和吸引力。愛掏網 - it200.com就目前來說,在Vue框架體系下,可以使用
組件來構建Web動畫效果,其實在React體系下,也可以使用類似的方式來給Web元素添加動畫效果。愛掏網 - it200.com接下來,就和大家一起探討,在React框架如何將CSS的trasition
和animation
運用到元素中,讓Web元素動起來。愛掏網 - it200.com如果你對這方面知識感興趣的話,歡迎繼續往下閱讀。愛掏網 - it200.com
不知道你是否像我一樣,在使用React構建的組件,在添加動效的時候,總是和自己期望的有所差異。愛掏網 - it200.com比如說,構建一個彈窗,彈窗出來的時候有動效,彈窗移除的時候沒有動效。愛掏網 - it200.com就像下面這樣的一個效果:
你可能已經發現了,彈窗窗現的時候,會有一個fadeIn
效果,但彈窗移除時并看不到fadeOut
效果。愛掏網 - it200.com這主要是因為,彈窗移除時,整個彈窗的DOM直接就刪除了,因此也沒有機會讓你能看到fadeOut
效果。愛掏網 - it200.com那么在React構建的應用中,如何來改善這一點呢?這也是接下來要和大家一起探討的話題。愛掏網 - it200.com
在Vue框架中提供了
組件,在不同的生命周期中添加相應的類名,并在相應的類名中設置樣式,從而給Vue組件添加動效:
在React中,我們可以使用一個類似Vue的
組件,即 react-transition-group
可以給React組件添加動畫效果。愛掏網 - it200.com
react-transition-group
提供了四個組件,
、
、
和
。愛掏網 - it200.com比如下面這個示例,就是采用
組件構建的一個帶有動效的組件:
// 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')
);
包月會員查看