国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react 官網(wǎng)動畫庫(react-transition-group)的新寫法

ky0ncheng / 1186人閱讀

摘要:一一個官網(wǎng)提供的動畫過度庫。安裝而官方提供的三個組建。下面來看一個例子效果是增加和刪除列表項中的一個,產(chǎn)生漸入漸失的效果說白了也就是多個或者組合的效果。

一、react-transition-group 一個官網(wǎng)提供的動畫過度庫。

搜索了網(wǎng)上關(guān)于react動畫的,很多的答案都是很久以前的了老版本了,而現(xiàn)在官方提供的是叫react-transition-group 它是以前兩個的合體版本,所以寫下這個記錄一下,同時也給一些需要的猿門給一些小的提示。
1、安裝

# npm
npm install react-transition-group --save

# yarn
yarn add react-transition-group

而官方提供的三個組建Transition,CSSTransition,TransitonGroup

Transition

過渡組件(Transiton)允許您用一個簡單的聲明性API描述隨著時間的推移從一個組件狀態(tài)到另一個組件狀態(tài)的轉(zhuǎn)換。最常用的是用來動畫一個組件的安裝和卸載,但也可以用來描述在適當?shù)倪^渡狀態(tài)。默認情況下,該組件不會更改其呈現(xiàn)的組件的行為,它只跟蹤組件的“進入”和“退出”的狀態(tài)。由你來為這些狀態(tài)定義效果。(翻譯)
實際的情況就是你如果只寫這個組件是沒有任何的效果的,就和你寫一個div一樣。所以你需要給他們賦予一些參數(shù)才可以。例如下面這個例子

//自己簡單的封裝了一個,該有的參數(shù)都由了,可以自行粘貼在自己的代碼里面去試試。
class Fade extends React.Component {
  constructor(props) {
    super(props);
  }
  done =() => {
    // console.log("結(jié)束了")
  }
  addaddEndListener = (node) => { //原生時間transition運動的事件
    node.addEventListener("transitionend", this.done, false);
  }

  // 三個進入狀態(tài)的事件,可以做你想做的事情
  onEnter = (node, isAppearing) => {
    console.log(isAppearing, "onEnter")
  }
  onEntering = (node, isAppearing) => {
    console.log(isAppearing, "onEntering")
  }
  onEntered = (node, isAppearing) => {
    console.log(isAppearing, "onEntered")
  }

  // 三個退出的狀態(tài)的事件
  onExit = (node) => {
    console.log("onExit")
  }
  onExiting = () => {
    console.log("onExiting")
  }
  onExited = () => {
    console.log("onExited")
    this.props.self()
  }
  render() {
    const { in: inProp, dur} = this.props;
    const defaultStyle = {
      transition: `transform ${300}ms ease-in-out, opacity ${300}ms ease-in-out`,
      transform: "translateX(100px)",
      opacity: "0"
    }

    const transitionStyles = {
      entering: { transform: "translateX(100px)", opacity: "0"},
      entered:  { transform: "translateX(0px)", opacity: "1" },
      exiting: {transform: "translateX(0px)", opacity: "1"},
      exited: {transform: "translateX(0px)", opacity: "0"}
    };
    const duration = {
      enter: 300,
      exit: 300,
    }
    // 上面的都是基本參數(shù),樣式的轉(zhuǎn)變以及時間的設(shè)定,具體的可以看官網(wǎng)文檔
    // 樣式也可以寫成className 例如
    return (
      
        {
          state => {
            console.log(state, "###") //你可以很直觀的看到組件加載和卸載時候的狀態(tài)
            return(
              
{this.props.children}
) } }
); } }

其中上面的狀態(tài)有四種:

entering
entered
exiting
exited

組件的初始化狀態(tài)都停留在exited
上面就是寫的一個最基本的例子,下面是如何的調(diào)用

let num = 1;
class Dnd extends React.Component {
  state = {
    ins: true,
    current: 1,
    dom: 
ceshi weizhi {num}
} handle = (bool) => { this.setState({ test: !bool }) } end = () => { const that = this; num = num + 1; setTimeout(function () { that.setState({ test: true, dom:
888888 {num}
}) }, 500) } render () { const { location } = this.props const { test } = this.state; return ( {this.state.dom} ) } } // 效果是每次點擊按鈕都會進行一次進場和出場的動畫。也可以自行衍生。
這個組件大概就是這樣的,這樣適合寫一個tab類型的頁面,在切換的時候可以展示不同的dom
CSSTransition

此組件是在轉(zhuǎn)換的出現(xiàn)、進入、退出階段應(yīng)用一對類名(也就是className),靠這個來激活CSS動畫。所以參數(shù)和平時的className不同,參數(shù)為:classNames
參數(shù):(主要)in, timeout, unmountOnExit, classNames, 用法同Transition。看如下例子:

state  = {
    star: false
}




  
?

效果是點擊button 顯示星星,在點擊消失星星的動畫!
參數(shù)classNames="star", 組件會找對應(yīng)狀態(tài)的className, 如下

.star {
    display: inline-block;
    margin-left: 0.5rem;
    transform: scale(1.25);
  }
  .star-enter {
    opacity: 0.01;
    transform: translateY(-100%) scale(0.75);
  }
  .star-enter-active {
    opacity: 1;
    transform: translateY(0%) scale(1.25);
    transition: all 300ms ease-out;
  }
  .star-exit {
    opacity: 1;
    transform: scale(1.25);
  }
  .star-exit-active {
    opacity: 0;
    transform: scale(4);
    transition: all 300ms ease-in;
  }

依次執(zhí)行的順序是

1、星星顯示 對應(yīng)的class為star-enter star-enter-active 動畫走完為star-enter-done
2、星星消失 對應(yīng)的class為star-exit  star-exit-active 動畫走完為star-exit-done

如果按照官網(wǎng)的解釋就是如下, 有興趣的可以自行去試一試。

classNames={{
 appear: "my-appear",
 appearActive: "my-active-appear",
 enter: "my-enter",
 enterActive: "my-active-enter",
 enterDone: "my-done-enter,
 exit: "my-exit",
 exitActive: "my-active-exit",
 exitDone: "my-done-exit,
}}

每個階段的鉤子函數(shù)同Transition.

TransitionGroup

一看group就知道肯定是列表形態(tài)的動畫了!但是看了官網(wǎng)后知道,TransitionGroup不提供任何形式的動畫,具體的動畫取決與你包裹的Transition || CSSTransition的動畫,所以你可以在列表里面做出不同類型的動畫出來。下面來看一個例子

class List extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      items: [
        { id: 1, text: "Buy eggs" },
        { id: 2, text: "Pay bills" },
        { id: 3, text: "Invite friends over" },
        { id: 4, text: "Fix the TV" },
      ]
    }
  }

  render() {
    const { items } = this.state; 
    return (
      
{items.map(({ id, text }) => (
{text}
))}
); } }

css

.fade-enter {
    opacity: 0.01;
  }
  .fade-enter-active {
    opacity: 1;
    transition: opacity 500ms ease-in;
  }
  .fade-exit {
    opacity: 1;
  }
  .fade-exit-active {
    opacity: 0.01;
    transition: opacity 500ms ease-in;
  }

效果是增加和刪除列表項中的一個,產(chǎn)生漸入漸失的效果!說白了也就是多個Transition 或者CSSTransition組合的效果。
但是也提供一些參數(shù)

1、component  default "div" 也就是TransitionGroup渲染出來的標簽為div,也可以就行更改,例如component="span" 渲染出來的就是span標簽了
2、children 相當于你給的組件,可以是字符串或者自定義組件等。
3、appear  寫在TransitionGroup里面相當于開啟或者禁止里面的Transition || CSSTransition 方便寫的作用

三個組件大概的特性就是這些。剩下的全靠自己去開發(fā)了!后續(xù)會錄入一些小的例子來講解,敬請期待。。。。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95925.html

相關(guān)文章

  • react-transition-group動畫庫Transition組件使用

    摘要:動畫庫這個庫包括個組件,今天做項目剛好用到了組件,記錄一下使用過程中的總結(jié),另外兩個組件用到了再做介紹。規(guī)定完成過渡效果需要多少秒或毫秒。規(guī)定速度效果的速度曲線。參考網(wǎng)址官方案例官網(wǎng)動畫庫的新寫法 react-transition-group動畫庫 這個庫包括3個組件:Transition,CSSTransition,TransitonGroup,今天做項目剛好用到了Transitio...

    charles_paul 評論0 收藏0
  • react-transition-group動畫庫Transition組件使用

    摘要:動畫庫這個庫包括個組件,今天做項目剛好用到了組件,記錄一下使用過程中的總結(jié),另外兩個組件用到了再做介紹。規(guī)定完成過渡效果需要多少秒或毫秒。規(guī)定速度效果的速度曲線。參考網(wǎng)址官方案例官網(wǎng)動畫庫的新寫法 react-transition-group動畫庫 這個庫包括3個組件:Transition,CSSTransition,TransitonGroup,今天做項目剛好用到了Transitio...

    gityuan 評論0 收藏0
  • React動畫實現(xiàn)原理

    摘要:動畫的實現(xiàn)原理要實現(xiàn)動畫,究其根本,最終的落地依然是操作從而達到頁面呈現(xiàn)動畫的目的。 聲明: 當前為草稿階段。然后有人可以指引下怎么寫草稿文章么~ web動畫的實現(xiàn)原理 web動畫的實現(xiàn),最終都是需要操作dom。CSS動畫,是給相應(yīng)的dom元素添加動畫className ; JS動畫,則是通過定時器或其他手段,不斷更改dom元素屬性值,達到動畫的目的。 React動畫的實現(xiàn)原理 Re...

    mrli2016 評論0 收藏0
  • React應(yīng)用“動”起來

    摘要:因為其組件只是根據(jù)提供的及屬性,生成動畫的數(shù)據(jù),業(yè)務(wù)應(yīng)用中拿到生成的數(shù)據(jù)后根據(jù)需要添加需要動畫的組件樣式。除了上述簡單的動畫應(yīng)用,在復雜動畫的實現(xiàn)方面,表現(xiàn)非常優(yōu)越。 WEB應(yīng)用中動畫很重要 不管是web應(yīng)用還是原生應(yīng)用,也不論是PC端應(yīng)用還是移動端應(yīng)用,動畫都扮演了一個重要的角色。 盡管動畫并不會添加應(yīng)用的實際動能,但一個好的動畫,一個流暢且優(yōu)雅,選擇在恰當時機出現(xiàn)的動畫,能為應(yīng)用增...

    xiyang 評論0 收藏0
  • react進階漫談

    摘要:父組件向子組件之間非常常見,通過機制傳遞即可。我們應(yīng)該聽說過高階函數(shù),這種函數(shù)接受函數(shù)作為輸入,或者是輸出一個函數(shù),比如以及等函數(shù)。在傳遞數(shù)據(jù)的時候,我們可以用進一步提高性能。 本文主要談自己在react學習的過程中總結(jié)出來的一些經(jīng)驗和資源,內(nèi)容邏輯參考了深入react技術(shù)棧一書以及網(wǎng)上的諸多資源,但也并非完全照抄,代碼基本都是自己實踐,主要為平時個人學習做一個總結(jié)和參考。 本文的關(guān)鍵...

    neuSnail 評論0 收藏0

發(fā)表評論

0條評論

ky0ncheng

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<