UNPKG

react-native-use-form-lite

Version:

Un hook personalizado y ligero para gestionar formularios en React Native de manera sencilla y eficiente. Facilita la captura y manejo de datos en formularios sin complicaciones, optimizando el proceso de integración y mejora la legibilidad del código.

151 lines (102 loc) 4.81 kB
# react-native-use-form-lite [![npm version](https://img.shields.io/npm/v/react-native-use-form-lite.svg?style=flat-square)](https://www.npmjs.com/package/react-native-use-form-lite) [![GitHub Repo](https://img.shields.io/badge/GitHub-repository-blue?style=flat-square&logo=github)](https://github.com/urian121/react-native-use-form-lite) [![npm](https://img.shields.io/npm/dt/react-native-use-form-lite.svg)](https://www.npmjs.com/package/react-native-use-form-lite) Es una librería moderna, intuitiva, liviana, escalable y sobre todo flexible para manejar formularios en **React Native** de forma rápida y sencilla. ![Vista previa](https://raw.githubusercontent.com/urian121/imagenes-proyectos-github/refs/heads/master/react-native-use-form-lite-2.png) <a href="https://snack.expo.dev/b7beF8lDI4xyhmbm2sB76"> 🚀 Demo </a> ## 🌍 ¿Qué es `react-native-use-form-lite`? `react-native-use-form-lite` es una librería de React Native que proporciona un pequeño hook (`useFormLite`) que facilita la captura y manejo de datos en formularios de **React Native**, eliminando la necesidad de escribir manualmente funciones de `onChangeText`, `onValueChange`, etc., para cada campo. Ideal para proyectos que necesitan formularios dinámicos sin complicaciones. ## ✨ ¿Qué problema soluciona? - ✅ Simplifica la administración de estados en formularios. - ✅ Evita crear múltiples funciones `onChange` para cada input. - ✅ Soporta diferentes tipos de inputs (`TextInput`, `Picker`, `Switch`, etc.). - ✅ Mejora la legibilidad y escalabilidad de tus formularios. - ✅ Facilita el mantenimiento de formularios medianos a grandes. ## 📦 Instalación ```bash npm install react-native-use-form-lite ``` ## 🔧 Uso Básico ```tsx import { StyleSheet, View, TextInput, Switch, Button } from 'react-native'; import { useFormLite } from 'react-native-use-form-lite'; import { Picker } from '@react-native-picker/picker'; // npm install @react-native-picker/picker const MyForm = () => { const { formData, register, resetForm, getEmptyFields } = useFormLite({ name:'', email: '', isActive: false, selectedOption: '', }); const handleSubmit = () => { // Imprime los datos del formulario en la consola al enviar console.log(formData); // Obtener campos vacios const emptyFields = getEmptyFields(); console.log(emptyFields); }; return ( <> <TextInput placeholder="Name" {...register('name')} /> <TextInput placeholder="Correo electrónico" {...register('email')} /> <Switch {...register('isActive', { type: 'switch' })} /> <Picker {...register('selectedOption', { type: 'select' })}> <Picker.Item label="Colombia" value="CO" /> <Picker.Item label="México" value="MX" /> <Picker.Item label="Venezuela" value="VE" /> </Picker> <Button title="Enviar" onPress={handleSubmit} /> <Button title="Resetear" onPress={resetForm} /> </> ); }; ``` ## 🧩 API del Hook `useFormLite` ### `formData` Estado actual del formulario: ```ts { name: 'Urian Viera', email: 'urian@example.com', isActive: true, selectedOption: 'US' } ``` ### `register(fieldName, options?)` Conecta un campo con el estado del formulario. ```tsx <TextInput {...register('name')} /> <Switch {...register('isActive', { type: 'switch' })} /> <Picker {...register('selectedOption', { type: 'select' })} /> ``` ### `resetForm()` Restablece el formulario a su estado inicial. ### `getEmptyFields()` Retorna un array con los nombres de los campos vacíos. ## 🧠 ¿Cómo funciona `register`? Según el tipo de input: - `TextInput` → `type: 'text'` (predeterminado) - `Picker` → `type: 'select'` - `Switch` → `type: 'switch'` Esto permite que los eventos `onChangeText` o `onValueChange` se asocien automáticamente. ## ✅ Ventajas - Ligero y fácil de usar. - Compatible con múltiples componentes de React Native. - Sin dependencias externas innecesarias. - Escrito en TypeScript para mejor DX. ## 📈 Ideal para: - Formularios pequeños y medianos. - Proyectos que buscan simplicidad. - Casos donde no se necesita una librería pesada de formularios. ## 👨‍💻 Desarrollador **Urian Viera** 🌐 [urianviera.com](https://www.urianviera.com) 📺 [YouTube](https://www.youtube.com/WebDeveloperUrianViera) 💌 [urian1213viera@gmail.com](mailto:urian1213viera@gmail.com) ☕ [¡Apóyame en PayPal!](https://www.paypal.com/donate/?hosted_button_id=4SV78MQJJH3VE) ## 📜 Licencia Distribuido bajo la licencia **MIT**. ## 🙌 Agradecimientos ¡Gracias a todos los **Devs** 👨‍💻 que han utilizado y contribuido al desarrollo de **react-native-use-form-lite**! Su apoyo y retroalimentación son fundamentales para mejorar continuamente este paquete.