Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bestnihon-react-components

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bestnihon-react-components

bestnihon-react-components React component

  • 2.2.4
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by66.67%
Maintainers
1
Weekly downloads
 
Created
Source

react-Q-element

React 私有组件库的搭建 推荐使用 nwb

nwb git地址

npm 地址

使用方法

npm i react-q-element    ||  yarn add react-q-element

// 本地安装依赖包后,就可直接在项目中引入
// ex: 
import { NavBar, TabContainer, TabContainerItem, LazyLoad, ScrollView} from 'react-q-element'

npm start 运行 demo,同时可在 demo 里面查看示例代码

注意点:

  1. 在打包过程中 css 样式文件没有打包的情况下, 请添加 npm run build -- --copy-files

  2. 同时,如果你是编写一个组件库而不是单个组件的话, 在 index.js 文件中 export xxx from ‘xxx’ , 可能在某些编辑器里面会有语法报错,直接忽略,打包即可,不要纠结

目录结构

├── CONTRIBUTING.md
├── README.md              // readme
├── demo                   // demo 存放地址
│   └── src
├── nwb.config.js          // nwb 基础配置
├── package.json          
├── src                   
│   ├── LazyLoad           // 懒加载
│   ├── NavBar             // 导航条
│   ├── ScrollView         // 上拉加载,下拉属性, scrollview
│   ├── TabContainer       // 左右拖拽,父级
│   ├── TabContainerItem   // 左右拖拽,子级
│   ├── index.js           // 插件 export 设置
│   └── utils             
├── tests
    └── index-test.js

DEMO gif 图展示

gif点击循环播放

API 详解

-- AutoScrollTab

点击后自动左 || 居中对齐

点选元素后会给标签添加一个 'active' 类名, 方便样式更改, 也可以写在 onClick 事件中你来定义一些处理事件

-- LazyLoad

懒加载

效果: 会在 img onload 成功之后 进行一个特效展示, opacity 0 ==>1 的过程

 <LazyLoad src={图片地址} />

-- NavBar

导航条

如果需要修改底部 bar 的样式 , 请通过类名进行样式覆盖, 不过我不推荐, 因为我这个蛮好看的

属性类型介绍
dataArray数组, bar 内容(当传递 children 的时候就无需传 data),固定格式为 [{ name: '标题1', type: 1 }, { name: '标题2', type: 2 }, { name: '标题3', type: 3 }]
IndexNumber选择第 ind 个 bar, 默认第一个 bar(0)
translateObject当与 TabContainer 组件联动的时候需要接受的 bar 移动距离值, 属性固定{ distance: , transition}
onSelFunction回调函数,用户点击第几个 bar, 返回 item,index ; 基本写法: onSel={(item, index) => { console.log(item. Index)}}
isAnimateBoolean是否开启点击移动动画, 默认 false
// navData
const data = [{name: '标题1', type: 1}, {name:'标题2', type: 2}, {name:'标题3', type: 3}]
<NavBar
   translate={NavBarTranslate}
   onSel={(item, index) => {
     console.log('navitem',item, index)
   }}
   data={data}
   index={TabContainerIndex}
 />

// children
 <NavBar
    translate={NavBarTranslate}
    onSel={(item, index) => {
      console.log('navitem', index)
    }}
    index={TabContainerIndex}
      >
        <span>首页</span>
        <span>购物车</span>
        <span>我的</span>
 </NavBar>

-- ScrollView

上拉加载,下拉刷新,scrollview

属性类型介绍
isFetchBoolean当页面没有数据的时候,开启 loading 效果,直接触发 topMethod 函数, 默认为 false
isLoadOverBoolean请求是否完成,可传字符串 || Boolean, Boolean 为 true 时默认展示字段'全部加载完毕', 传字符串就展示字符串
requestStateBoolean请求是否完成,默认 false
isPullDownBoolean是否开启下拉刷新, 默认为 false
isPullUpBoolean是否开启上拉加载, 默认为 false
topDistanceNumber下拉刷新 触发 阀值, 默认为 50px
bottomDistanceNumber上拉加载 触发 阀值, 默认为 50px
topMethodFunction下拉刷新执行函数
bottomMethodFunction上拉加载执行函数
wrapHeightNumber(必传)用户自定义高度, 如果没有则自动获取 scorllview 父级的高度
pullThresholdNumber上拉和下拉 最高可拉的阀值, 默认200
scrollXBoolean(必传) 横向滚动布局, 默认 false
scrollYBoolean(必传)纵向滚动布局, 默认 false
upperThresholdNumber距离顶部/左边多远时, 触发 onUpper 事件, 默认为 50px
lowerThresholdNumber距离底部/右边多远时, 触发 onLower 事件, 默认为 50px
onUpperFunction滚动到顶部/左边, 会触发 onUpper 事件
onLowerFunction滚动到底部/右边, 会触发 onLower 事件
onScrollFunction滚动实时触发,传递实时scroll 的值
itemIndexNumber展示第几个内容, 默认第一个,传下标,从0开始
itemKeyString||Number展示第几个内容,与 itemIndex 只能存在一个, 需要使用时必须在传递过去的子元素中加入 key 值
animateTimeNumber设置上拉下拉缓动动画完成时间
limitNumber下拉上拉移动速率调整, 公式: 拖动距离 / limit , 提升体验. 基础值为4
// itemKey 和 itemIndex  使用
    <ScrollView
        scrollX={true}
        itemKey={'test2'}
      >
        <div style={{width: '375px', height: '100px', backgroundColor:'skyblue'}} key={'test1'}>
          测试1
        </div>
        <div style={{width: '375px', height: '100px', backgroundColor:'green'}} key={'test2'}>
          测试2
        </div>
        <div style={{width: '375px', height: '100px', backgroundColor:'yellow'}}>
          测试3
        </div>
      </ScrollView>

// 上拉加载  下拉刷新使用
<ScrollView
            isFetch={true}
            scrollY={true}
            isPullDown={true}
            isPullUp={true}
            topMethod={() => {
              return new Promise((resolve, reject) => {
                setTimeout(() => {
                  this.setState({ 
                      list: list.reverse(), 
                      requestState: true }, 
                    () => {
                    resolve()
                  })
                }, 2000);
              })
            }}
            requestState={requestState}
            bottomMethod={() => {
              return new Promise((resolve, reject) => {
                setTimeout(() => {
                  this.setState({
                    list: [...list, '我是节点1', '我是节点2', ...list, '节点3', '节点4'],
                    requestState: true,
                    isLoadOver: '全部加载完毕'
                  }, () => {
                    resolve()
                  })
                }, 1000);
              })
            }}
            onUpper={() => {
              console.warn('到顶了')
            }}
            onLower={() => {
              console.warn('到底了')
            }}
            onScroll={obj => {
              console.warn('无时无刻不在触发', obj)
            }}
            isLoadOver={isLoadOver}
          >
            {list.map((item, index) => {
              return <div style={{ height: '50px', lineHeight: '50px', backgroundColor: 'red', textAlign: 'center' }} key={'item' + index}>
                {item}
              </div>
            })}
          </ScrollView>

-- TabContainer

左右拖拽(必须与 TabContainerItem 搭配使用)

属性类型介绍
intervalNumber触发自动滚动下一页阀值, 默认为屏幕的1/5
indexNumber展示第 index 页, 默认第一页,从0开始
onSelFunction回调函数,返回当前页数
onTranslateFunction回调函数 配合 Navbar 做 bar 联动, 返回一个对象 {distance:Number,//移动距离transition:Boolean// 是否开启动画效果}
<TabContainer>
            <TabContainerItem style={{ fontSize: '20px', backgroundColor: 'red' ,height: '500px'}}>
            {arr.map(i => {
                return <div key={i}>{i}</div>
            })}
            </TabContainerItem>
            <TabContainerItem style={{ backgroundColor: 'yellow' }}>
            {arr.map(i => {
                return <div key={i}>{i}</div>
            })}
            </TabContainerItem>
            <TabContainerItem style={{ backgroundColor: 'skyblue' }}>
            {arr.map(i => {
                return <div key={i}>{i}</div>
            })}
            </TabContainerItem>
          </TabContainer>

-- TabContainerItem

在 style 属性中传下 height 属性, 不传默认全屏高度

高度必传,但是,当与 ScrollView 连用时,ScrollVIew 高度可不传. 因为 ScrollView 在没有传递 wrapHeight 的时候,自动获取父级的高度

Keywords

FAQs

Package last updated on 17 Jul 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc