Thứ hai, 02/07/2018 | 00:00 GMT+7

Các biểu mẫu lạ mắt trong React với Reactstrap


Reactstrap cung cấp các thành phần Bootstrap 4 được dựng sẵn cho phép rất nhiều tính linh hoạt và xác nhận được tạo sẵn. Điều này cho phép ta nhanh chóng xây dựng các biểu mẫu đẹp được đảm bảo gây ấn tượng và cung cấp trải nghiệm user trực quan.

Bộ truyện

  • Phần 1 : Các biểu mẫu lạ mắt trong React với Reactstrap
  • Phần 2 : Sắp ra mắt: NPM Fort Awesome Sử dụng Font Awesome 5.0

Bắt đầu

Đối với bài đăng này, ta sẽ giả sử bạn đang sử dụng create-react-app dụng create-react-app hoặc thứ gì đó tương tự. Nếu bạn cần trợ giúp để bắt đầu, hãy tham khảo bài viết Làm quen với Tạo ứng dụng React của ta .

Đầu tiên, hãy cài đặt reactstrap :

$ npm install --save reactstrap react react-dom 

create-react-app yêu cầu cài đặt Bootstrap. Đây là cách thực hiện:

$ npm install bootstrap --save $ npm install --save reactstrap react react-dom 

Hoặc, bạn cũng có thể cài đặt mọi thứ cần thiết bằng Yarn :

$ yarn add reactstrap react react-dom bootstrap 

Tiếp theo nhập Bootstrap vào file src/index.js của bạn:

import 'bootstrap/dist/css/bootstrap.min.css'; 

Thành phần biểu mẫu

Reactstrap cho phép ta có các thành phần Form sẵn bao gồm bất kỳ thứ gì từ Input văn bản tiêu chuẩn của bạn đến Input tải lên file nâng cao hơn. Trong ví dụ này, ta sẽ tạo một dấu hiệu đơn giản trong biểu mẫu.

Đầu tiên nhập các Components bên dưới từ reactstrap vào file mong muốn của bạn. Trong ví dụ này, ta sẽ nhập ContainerCol chính xác như bạn nghĩ: Bố cục dựng sẵn tiện dụng của Bootstrap! Ta cũng sẽ nhập Form , FormGroup , Label , ButtonInput để sử dụng trực tiếp trong biểu mẫu đăng nhập của ta .

import {   Container, Col, Form,   FormGroup, Label, Input,   Button, } from 'reactstrap'; 

Bây giờ ta đã có các thành phần cần thiết, hãy đi sâu vào.

Reactstrap có các props như type , name , idplaceholder . Kiểu xác định kiểu đầu vào như tải lên file , nút radio hoặc thậm chí là kiểu nhập văn bản cụ thể hơn như email. Khi sử dụng các loại văn bản đầu vào cụ thể như password , Reactstrap sẽ tự động ẩn đầu vào mà không cần mã hóa bổ sung. Tên là key cho cặp giá trị khóa cuối cùng sẽ được gửi đến chương trình backend của ta . ID là những gì ta sử dụng khi thao tác với DOM. Trình giữ chỗ cho phép ta thêm văn bản mẫu vào đầu vào.

Bằng cách triển khai đoạn mã bên dưới (cùng với một chút css), ta sẽ bắt đầu cuộc đua với một hình thức trông khá đẹp:

import React, { Component } from 'react'; import {   Container, Col, Form,   FormGroup, Label, Input,   Button, } from 'reactstrap'; import './App.css';  class App extends Component {   render() {     return (       <Container className="App">         <h2>Sign In</h2>         <Form className="form">           <Col>             <FormGroup>               <Label>Email</Label>               <Input                 type="email"                 name="email"                 id="exampleEmail"                 placeholder="myemail@email.com"               />             </FormGroup>           </Col>           <Col>             <FormGroup>               <Label for="examplePassword">Password</Label>               <Input                 type="password"                 name="password"                 id="examplePassword"                 placeholder="********"               />             </FormGroup>           </Col>           <Button>Submit</Button>         </Form>       </Container>     );   } }  export default App; 

Với một chút CSS, kết quả sẽ giống như thế này. 🐊

Đăng nhập Demo

Tạo kiểu

Reactstrap cung cấp nhiều cách tích hợp để tạo kiểu cho các thành phần biểu mẫu của ta . Dưới đây là một số mục quan trọng có thể hữu ích.

  • Màu sắc : Cũng giống như Bootstrap, Reactstrap có các màu tích hợp sẵn khi sử dụng className mặc định như has-success .
  • InLine Form : Trong <Form> ta có thể thêm <Form inline> để đặt Label và Thông tin Input của bạn trong cùng một hàng.
  • Vùng chứa, Hàng & Cột, Ôi trời! : <Col> là version Cột của Reactstrap. Điều này cho phép ta định dạng không chỉ cho máy tính để bàn mà còn cho thiết bị di động và máy tính bảng.

Xác thực và Gợi ý User

Xác thực trong Reactstrap có thể nói là một trong những tính năng plug and play dễ dàng nhất.

FormText cho phép ta thêm văn bản chỉ báo bổ sung bên trên hoặc bên dưới trường. Đối với ví dụ này, tôi đã thay đổi Label “Email” thành “Tên user ” và thêm FormText như một chỉ dẫn hữu ích về những gì họ nên sử dụng làm tên user của bạn .

<FormText>Your username is most likely your email.</FormText> 

Ví dụ về FormText

FormFeedback xác thực ngay các trường. Bạn có thể linh hoạt tùy chỉnh xác thực đầu vào của bạn . Trong chức năng ví dụ bên dưới, ta thêm một chức năng với Regex để xác thực email trong sự kiện onChange và đặt trạng thái has-success hoặc has-danger .

validateEmail(e) {   const emailRex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;   const { validate } = this.state     if (emailRex.test(e.target.value)) {       validate.emailState = 'has-success'     } else {       validate.emailState = 'has-danger'     }     this.setState({ validate })   } 

Để áp dụng điều này cho Input của bạn, chỉ cần thêm phần hỗ trợ hợp lệ và / hoặc không hợp lệ với các điều kiện của bạn:

valid={ this.state.validate.emailState === 'has-success' } invalid={ this.state.validate.emailState === 'has-danger' } 

Sau khi thêm các đạo cụ hợp lệ và không hợp lệ, hãy sử dụng FormFeedback để hiển thị văn bản thành công và / hoặc thất bại.

<FormFeedback valid>   That's a tasty looking email you've got there. </FormFeedback> <FormFeedback invalid>   Uh oh! Looks like there is an issue with your email. Please input a correct email. </FormFeedback> 

Bây giờ user sẽ nhận được nhiều hướng hơn nếu họ nhập sai tên user và sử dụng màu sắc như ta đã mô tả ở trên.

Lỗi phản hồi biểu mẫu

Mặt khác, nếu họ nhập email chính xác, họ sẽ nhận được dòng chữ màu xanh lá cây dễ chịu với lời chúc mừng.

Phản hồi biểu mẫu thành công

Gửi biểu mẫu

Cuối cùng khi gửi, ta thường gửi dữ liệu đến database của bạn nhưng trong ví dụ của ta , ta điều khiển ghi lại email bằng cách sử dụng hàm submitForm . Ta khuyên bạn nên xem repo ví dụ để hiểu rõ hơn về các chức năng onChangesubmitForm .

submitForm(e) {   e.preventDefault();   console.log(`Email: ${ this.state.email }`) } 

Để biết thêm thông tin về Reactstrap, đây là liên kết đến tài liệu của họ .

Đối với dự án ví dụ đầy đủ, hãy sao chép repo này .


Tags:

Các tin liên quan