成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

@blankapp/ui,高可定制和主題化的 React Native 組件庫(kù)

Mike617 / 1580人閱讀

摘要:簡(jiǎn)介高可定制和主題化組件庫(kù)瀏覽上的文檔,或者在我們的中試用。特性輕依賴,非常少的依賴全局主題化,多種樣式選擇器的實(shí)現(xiàn)豐富的基礎(chǔ)組件友好的設(shè)計(jì)如果服務(wù)不顯示,點(diǎn)擊這里查看。

從今年3月開(kāi)始,經(jīng)過(guò)一段時(shí)間的思考,我拋棄了我之前一直掛在口上的全棧的自稱(chēng),希望可以將我的 100% 的精力都集中在一個(gè)方向的技術(shù)棧上,從而開(kāi)始了我的 React Native 路。

在項(xiàng)目初期,我像拼積木一樣不斷的往項(xiàng)目的 package.json 里加上了各種各樣的組件庫(kù),在遭遇 React Native 的大版本升級(jí)和項(xiàng)目體量不斷上升,項(xiàng)目代碼變得越來(lái)越不可控,并且慢慢意識(shí)到導(dǎo)致這種情況的原因有很大一部分是因?yàn)橐蕾嚵颂嗟慕M件,而最早引用的組件庫(kù) @shoutem/ui 依賴的組件非常的多,而且很大部分是我的項(xiàng)目使用不到的,所以在幾個(gè)月前我在工作之余就慢慢嘗試實(shí)現(xiàn)了自己的 ui 組件庫(kù),在這個(gè)項(xiàng)目已經(jīng)達(dá)到了可用狀態(tài)時(shí),我用了將近三周時(shí)間將公司的項(xiàng)目重寫(xiě)了,并且使用了這個(gè)庫(kù),并且在這兩周利用完善了文檔。

所以,現(xiàn)在很高興能把這個(gè)項(xiàng)目分享給大家,希望我的工作可以對(duì)你有一定的幫助。

簡(jiǎn)介

高可定制和主題化 React Native 組件庫(kù)

瀏覽 blankapp.org 上的文檔,或者在我們的 Live demo 中試用。

特性

輕依賴,非常少的依賴

全局主題化,多種樣式選擇器的實(shí)現(xiàn)

豐富的基礎(chǔ)組件

友好的 API 設(shè)計(jì)

Live Demo

如果 Appetize 服務(wù)不顯示,點(diǎn)擊這里查看 Live demo 。

快速開(kāi)始 必備條件

開(kāi)始之前確保你已安裝:

已安裝 Yarn

已安裝 React Native

安裝

創(chuàng)建一個(gè)新的 React Native 項(xiàng)目:

$ react-native init HelloWorld
$ cd HelloWorld

安裝 @blankapp/ui 并鏈接到您的項(xiàng)目中:

$ yarn add @blankapp/ui

現(xiàn)在,只需將以下內(nèi)容復(fù)制到 React Native 項(xiàng)目的 index.ios.js 文件:

import React, { Component } from "react";
import { AppRegistry } from "react-native";
import Theme, {
  ThemeProvider,
  Screen,
  Text,
} from "@blankapp/ui";

const drakTheme = {
  "Screen": { backgroundColor: "black" },
  "Text": { color: "white" },
};

Theme.registerTheme("dark", drakTheme);

class Examples extends Component {
  render() {
    // 需要將 ThemeProvider 添加到程序入口組件中。
    return (
      
        
          Hello World
        
      
    );
  }
}

AppRegistry.registerComponent("Examples", () => Examples);

PS. 默認(rèn)提供一套主題,你可以通過(guò) Live demo 查看效果,如果需要定義您的專(zhuān)屬樣式,請(qǐng)繼續(xù)往下看。

運(yùn)行程序

在 Android 上運(yùn)行:

$ react-native run-android
$ adb reverse tcp:8081 tcp:8081   # required to ensure the Android app can

在 iOS 上運(yùn)行:

$ react-native run-ios

進(jìn)階特性 主題選擇器

通過(guò)實(shí)現(xiàn)了一些類(lèi)似于 CSS 的樣式選擇器,現(xiàn)在我們可以很方便的通過(guò)組件的 Props 來(lái)更改組件的樣式

已完成選擇器:
組件選擇器(Button 組件,應(yīng)用以下樣式)
export default {
  Button: {
    activeOpacity: 0.8,
    paddingLeft: 8,
    paddingRight: 8,
    paddingTop: 0,
    paddingBottom: 0,
  },
};
屬性選擇器(Button 組件,當(dāng)屬性 disabledtrue,應(yīng)用以下樣式)
export default {
  "Button[disabled=true]": {
    opacity: 0.4,
  },
};
層級(jí)選擇器(Button 組件下所有 Text 組件,應(yīng)用以下樣式)
export default {
  "Button[size=mini]": {
    Text: {
      fontSize: 14,
    },
  },
};
計(jì)劃中的選擇器:
類(lèi)選擇器(styleName、className)
export default {
  // Come soon
};

PS. 如果您需要更深入的去了解選擇器的使用,請(qǐng)查看默認(rèn)主題的定義。

自定義主題

當(dāng)然,每個(gè)項(xiàng)目的設(shè)計(jì)風(fēng)格肯定各有不同,默認(rèn)主題很多情況下無(wú)法滿足實(shí)際的開(kāi)發(fā)需要,所以需要您自己自定義主題。

import Theme, { ThemeProvider } from "@blankapp/ui";

// 定義一個(gè)樣式表
const drakTheme = {
  "Screen": { backgroundColor: "black" },
  "Text": { color: "white" },
};

// 注冊(cè)一個(gè) `dark` 樣式
Theme.registerTheme("dark", drakTheme);

// 將 `theme` 屬性設(shè)為 `dark` 就可以使用該樣式了
// 例:

PS. 如果你需要構(gòu)建一個(gè)完整的主題,請(qǐng)查看默認(rèn)主題的定義。

自定義組件

很多情況下,我們需要定義一些自己的組件用于滿足我們的業(yè)務(wù)需求,所以您也可以很方便的構(gòu)建一個(gè)自己的組件。

首先創(chuàng)建你的樣式表文件

export default {
  Title: {
    backgroundColor: "transparent",
    color: "#FFFFFF",
    fontSize: 17,
    fontWeight: "500",
    marginBottom: 4,
  },
};

使用 withStyles 函數(shù)將樣式應(yīng)用到你的組件

import { Text as RNText } from "react-native";
import { withStyles } from "@blankapp/ui";

// 為了方便,這里直接將 `Text` 組件應(yīng)用上了 `Title` 樣式。
const Title = withStyles("Title")(RNText);

export default Title;
基礎(chǔ)組件

以下通過(guò)一些簡(jiǎn)單的示例組件代碼,讓你更快入門(mén)本項(xiàng)目。

Button
禁用狀態(tài)
加載中狀態(tài)
尺寸的變化形式
CheckBox
禁用狀態(tài)
選中狀態(tài)
項(xiàng)目討論

如果你對(duì)本項(xiàng)目有任何建議或問(wèn)題,可以通過(guò) Gitter 或本人私人微信進(jìn)行討論。

PS. 目前我的團(tuán)隊(duì)(深圳)正在招聘 ReactJS 和 React Native 的工程師,歡迎自薦或推薦優(yōu)秀人才。

參考項(xiàng)目

https://github.com/shoutem/ui

https://github.com/airbnb/rea...

https://github.com/hexojs/site

相關(guān)鏈接

源碼地址:https://github.com/blankapp/ui

文檔地址:http://blankapp.org

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84976.html

相關(guān)文章

  • 搜集React、Vue、Angular傳統(tǒng)UI組件庫(kù)以及后臺(tái)管理平臺(tái)模板

    摘要:高顏值好用易擴(kuò)展的微信小程序庫(kù),有贊。一套高質(zhì)量的微信小程序組件庫(kù)。用和搭建的一個(gè)通用管理后臺(tái)基于實(shí)現(xiàn)的后臺(tái)管理系統(tǒng)模板一個(gè)后臺(tái)管理系統(tǒng)模板是一套組件化框架,支持定制主題,主要服務(wù)于前臺(tái)及中后臺(tái)產(chǎn)品。基于后臺(tái)管理系統(tǒng)。 快來(lái)Star,在這里哦Awesome UIKit。 showImg(https://segmentfault.com/img/remote/14600000059942...

    zhangrxiang 評(píng)論0 收藏0
  • 搜集React、Vue、Angular傳統(tǒng)UI組件庫(kù)以及后臺(tái)管理平臺(tái)模板

    摘要:高顏值好用易擴(kuò)展的微信小程序庫(kù),有贊。一套高質(zhì)量的微信小程序組件庫(kù)。用和搭建的一個(gè)通用管理后臺(tái)基于實(shí)現(xiàn)的后臺(tái)管理系統(tǒng)模板一個(gè)后臺(tái)管理系統(tǒng)模板是一套組件化框架,支持定制主題,主要服務(wù)于前臺(tái)及中后臺(tái)產(chǎn)品。基于后臺(tái)管理系統(tǒng)。 快來(lái)Star,在這里哦Awesome UIKit。 showImg(https://segmentfault.com/img/remote/14600000059942...

    source 評(píng)論0 收藏0
  • 11個(gè)React Native 組件庫(kù) Javascript 數(shù)據(jù)可視化庫(kù)

    摘要:數(shù)據(jù)可視化庫(kù)超過(guò)的的可能是最流行和最廣泛的數(shù)據(jù)可視化庫(kù)。是一組組件,用于高效地渲染大型列表和表格數(shù)據(jù)。一種優(yōu)雅而靈活的方式,可以利用組件來(lái)支持實(shí)際的數(shù)據(jù)可視化。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! React Native 組件庫(kù) 1. NativeBase showImg(https://segmentfault.com/img/bVbrLHH?w=...

    tangr206 評(píng)論0 收藏0
  • Yoshino: 一個(gè)基于React的可定制化的PC組件庫(kù)

    摘要:開(kāi)發(fā)者只需要結(jié)合就能像配置主題一樣輸出不同風(fēng)格的組件。除了簡(jiǎn)單通用的組件,抽離出了一些易用性比較高的特效功能組件,例如安裝使用方法 Github: https://github.com/Yoshino-UI... Docs: https://yoshino-ui.github.io/#/ Cli-Tool: https://github.com/Yoshino-UI... 安利一...

    caoym 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<