【RN】学习使用 Reactive Native内置UI组件

这篇具有很好参考价值的文章主要介绍了【RN】学习使用 Reactive Native内置UI组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简言

当把导航处理好后,就可以学习使用ui组件了(两者没有先后关系,个人习惯)。
在 Android 和 iOS 开发中,一个视图是 UI 的基本组成部分:屏幕上的一个小矩形元素、可用于显示文本、图像或响应用户输入。甚至应用程序最小的视觉元素(例如一行文本或一个按钮)也都是各种视图。某些类型的视图可以包含其他视图。全部都是视图。
【RN】学习使用 Reactive Native内置UI组件,React Native,学习,ui,react native

组件

介绍

在 Android 开发中是使用 Kotlin 或 Java 来编写视图;在 iOS 开发中是使用 Swift 或 Objective-C 来编写视图。
在 React Native 中,则使用 React 组件通过 JavaScript 来调用这些视图。
由于 React Native 组件就是对原生视图的封装,因此使用 React Native 编写的应用外观、感觉和性能与其他任何原生应用一样。
React Native UI组件类似于web中的元素。
例如:
【RN】学习使用 Reactive Native内置UI组件,React Native,学习,ui,react native

import React from 'react';
import { View, Text, Image, ScrollView, TextInput } from 'react-native';

const App = () => {
  return (
    <ScrollView>
      <Text>Some text</Text>
      <View>
        <Text>Some more text</Text>
        <Image
          source={{
            uri: 'https://reactnative.dev/docs/assets/p_cat2.png',
          }}
          style={{ width: 200, height: 200 }}
        />
      </View>
      <TextInput
        style={{
          height: 40,
          borderColor: 'gray',
          borderWidth: 1
        }}
        defaultValue="You can type in me"
      />
    </ScrollView>
  );

【RN】学习使用 Reactive Native内置UI组件,React Native,学习,ui,react native

UI组件

React Native 提供了一些内置的核心组件供你使用。组件地址
本篇只简单介绍UI组件的使用方法。

View

view
作为创建 UI 时最基础的组件,View 是一个支持 Flexbox 布局、样式、触摸响应、和一些无障碍功能的容器。不论在什么平台上,View 都直接对应当前平台的原生视图,无论它是 UIView、div 还是 android.view.View。
相当于 web的 div元素
可以嵌套任何内容。

要修改样式 则可以在style属性上修改,和css的内联样式用法一样。

注意:这里没有像素单位的概念,不要带单位,例如修改宽高可以百分比或者直接写固定值。

import React from "react";
import { View, Text } from "react-native";

const ViewBoxesWithColorAndText = () => {
  return (
    <View
      style={{
        flexDirection: "row",
        height: 100,
        padding: 20
      }}
    >
      <View style={{ backgroundColor: "blue", flex: 0.3 }} />
      <View style={{ backgroundColor: "red", flex: 0.5 }} />
      <Text>Hello World!</Text>
    </View>
  );
};

export default ViewBoxesWithColorAndText;

Text

Text
一个用于显示文本的 React 组件,并且它也支持嵌套、样式,以及触摸处理。
可以嵌套文件组件,文本样式将会继承。

ios下可以嵌套view组件。

<Text>元素在布局上不同于其它组件:在 Text 内部的元素不再使用 flexbox 布局,而是采用文本布局。这意味着<Text>内部的元素不再是一个个矩形,而可能会在行末进行折叠。
你必须把你的文本节点放在<Text>组件内。你不能直接在<View>下放置一段文本。

// 正确的做法
<View>
  <Text>
    一些文本
  </Text>
</View>

TextInput

TextInput
TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件。本组件的属性提供了多种特性的配置,譬如自动完成、自动大小写、占位文字,以及多种不同的键盘类型(如纯数字键盘)等等。
最简单的用法就是丢一个TextInput到应用里,然后订阅它的onChangeText事件来读取用户的输入。注意,从 TextInput 里取值这就是目前唯一的做法!它还有一些其它的事件,譬如onSubmitEditing和onFocus。一个简单的例子如下:

import React, { Component } from 'react';
import { TextInput } from 'react-native';

const UselessTextInput = () => {
  const [value, onChangeText] = React.useState('Useless Placeholder');

  return (
    <TextInput
      style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
      onChangeText={text => onChangeText(text)}
      value={value}
    />
  );
}

export default UselessTextInput;

Image

image
用于显示多种不同类型图片的 React 组件,包括网络图片、静态资源、临时的本地图片、以及本地磁盘上的图片(如相册)等。

本地图片直接使用 require()引用就行。
图片uri的具体用法

下面的例子分别演示了如何显示从本地缓存、网络甚至是以’data:'的 base64 uri 形式提供的图片。

请注意对于网络和 base64 数据的图片需要手动指定尺寸!

import React from 'react';
import { View, Image, StyleSheet } from 'react-native';

const styles = StyleSheet.create({
  container: {
    paddingTop: 50,
  },
  tinyLogo: {
    width: 50,
    height: 50,
  },
  logo: {
    width: 66,
    height: 58,
  },
});

const DisplayAnImage = () => {
  return (
    <View style={styles.container}>
      <Image
        style={styles.tinyLogo}
        source={require('@expo/snack-static/react-native-logo.png')}
      />
      <Image
        style={styles.tinyLogo}
        source={{
          uri: 'https://reactnative.dev/img/tiny_logo.png',
        }}
      />
      <Image
        style={styles.logo}
        source={{
          uri: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAEXRFWHRTb2Z0d2FyZQBwbmdjcnVzaEB1SfMAAABQSURBVGje7dSxCQBACARB+2/ab8BEeQNhFi6WSYzYLYudDQYGBgYGBgYGBgYGBgYGBgZmcvDqYGBgmhivGQYGBgYGBgYGBgYGBgYGBgbmQw+P/eMrC5UTVAAAAABJRU5ErkJggg==',
        }}
      />
    </View>
  );
}

export default DisplayAnImage;

ScrollView

scrollView
一个封装了平台的 ScrollView(滚动视图)的组件,同时还集成了触摸锁定的“响应者”系统。

记住 ScrollView 必须有一个确定的高度才能正常工作,因为它实际上所做的就是将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作)。

FlatList

FlatList
高性能的简单列表组件,支持下面这些常用的功能:

  • 完全跨平台。
  • 支持水平布局模式。
  • 行组件显示或隐藏时可配置回调事件。
  • 支持单独的头部组件。
  • 支持单独的尾部组件。
  • 支持自定义行间分隔线。
  • 支持下拉刷新。
  • 支持上拉加载。
  • 支持跳转到指定行(ScrollToIndex)。
  • 支持多列布局。

SectionList

SectionList
高性能的分组(section)列表组件,支持下面这些常用的功能:

  • 完全跨平台。
  • 行组件显示或隐藏时可配置回调事件。
  • 支持单独的头部组件。
  • 支持单独的尾部组件。
  • 支持自定义行间分隔线。
  • 支持分组的头部组件。
  • 支持分组的分隔线。
  • 支持多种数据源结构
  • 支持下拉刷新。
  • 支持上拉加载。

Button

Button
一个简单的跨平台的按钮组件。可以进行一些简单的定制。
这个组件的样式是固定的。所以如果它的外观并不怎么搭配你的设计,那你需要使用 Pressable 组件来定制自己所需要的按钮,或者你也可以在 github.com 网站上搜索 ‘react native button’ 来看看社区其他人的作品。

Switch

switch
跨平台通用的“开关”组件。

注意这是一个“受控组件”(controlled component)。你必须使用onValueChange回调来更新value属性以响应用户的操作。如果不更新value属性,组件只会按一开始给定的value值来渲染且保持不变,看上去就像完全点不动。

StyleSheet

StyleSheet
StyleSheet 提供了一种类似 CSS 样式表的抽象。
react native中没有css样式表的概念,使用内联样式来修改,所以这个是搭配内联使用的。

从代码质量角度:

  • 从渲染函数中移除具体的样式内容,可以使代码更清晰易读。
  • 给样式命名也可以对渲染函数中的组件增加语义化的描述。
import React from "react";
import { StyleSheet, Text, View } from "react-native";

const App = () => (
  <View style={styles.container}>
    <Text style={styles.title}>React Native</Text>
  </View>
);

const styles = StyleSheet.create({
  container: {
    flex: 1,
    padding: 24,
    backgroundColor: "#eaeaea"
  },
  title: {
    marginTop: 16,
    paddingVertical: 8,
    borderWidth: 4,
    borderColor: "#20232a",
    borderRadius: 6,
    backgroundColor: "#61dafb",
    color: "#20232a",
    textAlign: "center",
    fontSize: 30,
    fontWeight: "bold"
  }
});

export default App;

结语

除此UI组件外还有其他的组件,例如ios专属组件、android专属组件。文章来源地址https://www.toymoban.com/news/detail-836548.html

到了这里,关于【RN】学习使用 Reactive Native内置UI组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [快速上手RN] 3. React native 制作底部导航栏 Bottom Tab Bar

    [快速上手RN] 0.React Native 快速启动项目 [快速上手RN] 1. React native 项目集成UI Kitten [快速上手RN] 2. React native 项目色彩主题色编辑及使用 [快速上手RN] 3. React native 制作底部导航栏 Bottom Tab Bar [快速上手RN] 4. React native 集成redux 首先我们确认目标 在APP底部新增一个导航栏 导航栏点

    2024年02月05日
    浏览(39)
  • Reactive UI -- 反应式编程UI框架入门学习(一)

    反应式编程是一种相对于命令式的编程范式,由函数式的组合声明来构建异步数据流。要理解这个概念,可以简单的借助Excel中的单元格函数。   上图中,A1=B1+C1,无论B1和C1中的数据怎么变化,A1中的值都会自动变化,这其中就蕴含了反应式/响应式编程的思想。 反应式编程对

    2024年02月02日
    浏览(35)
  • 求助帖:React Native failed installing Ruby Gems(rn 下载 Runby Gems 失败)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 react native当前版本0.72.4,官方文档也是最新的, macos:13.3。 最近要用RN做一个项目,参照官方文档链接: link 已经完成了前期的配置工作,直到最后一步创建AsomeProject示例项目时候,RN下载依赖卡在Inst

    2024年02月07日
    浏览(33)
  • React UI组件库

    1 流行的开源React UI组件库 1 material-ui(国外) 官网: Material UI: React components based on Material Design github: GitHub - mui/material-ui: MUI Core: Ready-to-use foundational React components, free forever. It includes Material UI, which implements Google\\\'s Material Design. 2 ant-design(国内蚂蚁金服) 官网: Ant Design - 一套企业级

    2024年02月13日
    浏览(26)
  • 26、react UI 组件库 Ant-design 蚂蚁金服UI组件库

    material-ui (国外) 官网:https://mui.com/zh/material-ui/getting-started/installation/ 这是国外非常流行的 react UI 组件库,但是在国内并不是很常用。 Ant-design UI组件库 官网:https://ant.design/index-cn 这是国内比较流行 react UI 组件库,又蚂蚁金服团队开发。这一篇博客主要来讲解在 react 项目中

    2024年02月08日
    浏览(27)
  • vue3 使用UI框架reactive数据更新,视图不更新问题

    本篇主要记录两个问题,然而这两个问题又都可以对应同一种解法。废话少说,解决方法在最上面。推荐格式如下: 一定一定要再多包一层,不然就会遇到一些问题。(⊙﹏⊙)虽然这是一句废话。下面的内容过于基础且本篇只记录bug和解法,想要探求为什么的呢,还请自己去

    2024年02月12日
    浏览(24)
  • Expo项目 使用Native base UI库

    装包: yarn add native-base expo install react-native-svg@12.1.1   Index.js:     参考链接: https://docs.nativebase.io/install-expo https://chat.xutongbao.top/

    2024年02月13日
    浏览(32)
  • 组件与Props:React中构建可复用UI的基石

    目录 组件:构建现代UI的基本单位 Props:组件之间的数据传递 Props的灵活性:构建可配置的组件 组件间的通信:通过回调函数传递数据 总结: 组件:构建现代UI的基本单位 组件是前端开发中的关键概念之一。它允许我们将UI拆分成独立、可复用的部分,使得代码更易于理解

    2024年02月06日
    浏览(32)
  • 2023 年 8 个最佳 React UI 组件库和框架

    将展示八个最好的 React UI 组件库和框架,如下表所示:( 星标加关注,开车不迷路 ) 「React Bootstrap:」 一个与 Bootstrap 框架集成的实用的 React UI 库。 「Grommet:」 如果您想在设计中实现可访问性,这个 React UI 组件库非常有用。 「Blueprint:」 对于桌面 React 应用程序,您需

    2024年02月13日
    浏览(42)
  • 【react】如何制作react npm包(例如UI组件Text)上传到npm

    学习本文,可以在公司需要自定义自己的各类组件,避免重复造轮子的情况下,使用Npm进行统一复用。以及类似的应用场景也能够应对。 PS:本指南只是从无到有的全过程,如果部分童鞋已经处理了部分,请自行忽略 一、注册npm账号(已注册可自行忽略) 地址:https://www.n

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包