1.2.2 • Published 3 years ago

use-hooks-react v1.2.2

Weekly downloads
48
License
ISC
Repository
github
Last release
3 years ago

use-hooks-react

This project is still in the test phase, use it carefully! 😈

Install

$ npm install use-hooks-react

Usage

import { useModal, usePage, useResize, useSearch, useBasicResize } from 'use-hooks-react'

...
const [visible, current, openModal, closeModal] = useModal()
const [list, pageInfo, loading, setList, setPageInfo, setLoading] = usePage()
const [attribute] = useResize()
const [refresh, params, setRefresh, setParams] = useSearch()
const attribute = useBasicResize()
...

Demo

useModal

import { Modal, Button } from 'antd'
import { useModal } from 'use-hooks-react'

const InfoModal = props => {
  const { visble, onCancel, onOk, user = {} } = props
  return (
    <Modal
      visible={visble}
      title="info"
      onCancel={onCancel}
      onOk={onOk}
     >
      <p>name: {user.name}</p>
      <p>age: {user.age}</p>
   	</Modal>
  )
}

const UseModalDemo = () => {
  const [visible, current, openModal, closeModal] = useModal()
 
  const handleBtn = () => {
    openModal({
      name: 'Xlslucky'
      age: 24,
    })
  }
 
  return (
  	<>
      <Button onClick={handleBtn}>
        Show UserInfo
      </Button>
      <InfoModal
        user={current}
        onCancel={closeModal}
        onOk={() => {}}
      />
    </>
  )
}

export default UseModalDemo

usePage & useSearch

import { Button, Input } from 'antd'
import { useEffect } from 'react'
import { usePage } from 'use-hooks-react'

const UsePageDemo = () => {
  const [list, , loading, setList, , setLoading] = usePage()
  const [refresh, params, setRefresh, setParams] = useSearch({ name: '' }, true)
 
  useEffect(() => {
    const getList = async () => {
      setLoading(true)
      const url = `https://api.github.com/users?xxx=${params.name}`
      const data = await window.fetch(url).then(resp => resp.json())
      setList(data)
      setLoading(false)
      setRefresh(false)
  	}
    
    if (refresh) {
      getList()
    }
  }, [refresh])
  
  const onSubmit = e => {
    e.preventDefault()
    setRefresh(true)
  }
 
  const onChangeInput = name => ({ target }) => {
    setParams({
      [name]: target.value,
    })
  }

  return (
    <>
      <form onSubmit={onSubmit}>
        <Input value={params.name} onChange={onChangeInput('name')} />
        <Button htmlType="submit">Submit</Button>
      </form>
      <div>
        {
          loading ?
            'loading...'
            :
            list.map(item => <div>{item.login}</div>)
        }
      </div>
    </>
  )
}

export default UsePageDemo

useResize | useBasicResize

import { useResize } from 'use-hooks-react'

const UseResizeDemo = () => {
  const [attribute] = useResize()
  const basicAttribute = useBasicResize()
  
  return (
  	<>
      <p>bodyClientWidth: {attribute.bodyClientWidth}</p>
      <p>bodyClientHeight: {attribute.bodyClientHeight}</p>
      ...
      <p>bodyClientWidth: {basicAttribute.bodyClientWidth}</p>
      <p>bodyClientHeight: {basicAttribute.bodyClientHeight}</p>
    </>
  )
}

export default UseResizeDemo
1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago