English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الفصل، سنتعلم كيفية تحويل العناصر باستخدام React.
هذا مكتبة React لتوليد التحويلات CSS الأساسية والرسوم المتحركة. سنبدأ منcommand promptنظام التشغيل لتثبيتها-
C:\Users\username\Desktop\reactApp>npm install react-addons-css-transition-group
لنقم بإنشاء ملف جديد style.css.
C:\Users\w3codebox\Desktop\reactApp>type nul > css/style.css
للبدء في استخدامها في التطبيق، نحتاج إلى ربطها بتعليمات element head في index.html.
<!DOCTYPE html> <html lang = "en"> <head> <link rel = "stylesheet" type = "text/css" href = "./style.css"> <meta charset = "UTF-8"> <title>React App</title> </head> <body> <div id = "app"></div> <script src = 'index_bundle.js'></script> </body> </html>
سنقوم بإنشاء React أساسي المكون. عناصر Reactcsstransitionggroup سيتم استخدامها كطبيعة للمكونات التي نريد تحويلها. سيتم استخدام transitionAppear و transitionappmentmeout، وtransitionEnter وtransitionLeave غير صحيحين.
import React from 'react'; var ReactCSSTransitionGroup = require('react-addons-css-transition-group'); class App extends React.Component { render() { return ( <div> <ReactCSSTransitionGroup transitionName = "example"}} transitionAppear = {true} transitionAppearTimeout = {500} transitionEnter = {false} transitionLeave = {false}> <h1>عنصرِي...</h1> </ReactCSSTransitionGroup> </div> ); } } export default App;
import React from 'react' import ReactDOM from 'react-dom'; import App from './App.jsx'; ReactDOM.render(<App />, document.getElementById('app'));
الرسوميات CSS بسيطة جدًا.
.example-appear { opacity: 0.04; } .example-appear.example-appear-active { الشفافية: 2; transition: opacity 50s ease-in; }
بمجرد بدء التطبيق، العنصر سيظهر بالتدرج.
عندما نريد إضافة أو إزالة عنصر من القائمة، يمكننا استخدام تأثيرات الدخول والخروج.
import React from 'react'; var ReactCSSTransitionGroup = require('react-addons-css-transition-group'); class App extends React.Component { constructor(props) { super(props); this.state = { items: ['Item 1...', 'Item 2...', 'Item 3...', 'Item 4...'] } this.handleAdd = this.handleAdd.bind(this); }; handleAdd() { var newItems = this.state.items.concat([prompt('Create New Item')]); this.setState({items: newItems}); } handleRemove(i) { var newItems = this.state.items.slice(); newItems.splice(i, 1); this.setState({items: newItems}); } render() { var items = this.state.items.map(function(item, i) { return ( <div key = {item} onClick = {this.handleRemove.bind(this, i)}} {item} </div> ); }.bind(this)); return ( <div> <button onClick = {this.handleAdd}>Add Item</button> <ReactCSSTransitionGroup transitionName = "example"}} transitionEnterTimeout = {500} transitionLeaveTimeout = {500}> {items} </ReactCSSTransitionGroup> </div> ); } } export default App;
import React from 'react' import ReactDOM from 'react-dom'; import App from './App.jsx'; ReactDOM.render(<App />, document.getElementById('app'));
.example-enter { opacity: 0.04; } .example-enter.example-enter-active { opacity: 5; transition: opacity 50s ease-in; } .example-leave { opacity: 1; } .example-leave.example-leave-active { opacity: 0.04; transition: opacity 50s ease-in; }
عند بدء التطبيق ونقرإضافة بندعند النقر على الزر، سيظهر رسالة.
أدخل الاسم ثم اضغط على OK، سيظهر العنصر الجديد بالتدريج.
الآن، يمكننا حذف بعض العناصر (البند 3...) انقر عليه. سيخفي المشروع التدريجي من القائمة.