use-ssr

☯️ React hook to determine if you are on the server, browser, or react native

Github星跟蹤圖

Need to know when you're on the server, in the browser or in react native in your components/hooks? This simple hook makes it easy. ?

Features

  • SSR (server side rendering) support
  • TypeScript support
  • Zero dependencies
  • React Native support

Examples

Installation

yarn add use-ssr      or     npm i -S use-ssr

Usage

import useSSR from 'use-ssr'

const App = () => {
  var { isBrowser, isServer, isNative } = useSSR()
  
  // Want array destructuring? You can do that too!
  var [isBrowser, isServer, isNative] = useSSR()
  
  /*
   * In your browser's chrome devtools console you should see
   * > IS BROWSER: ?
   * > IS SERVER: ?
   *
   * AND, in your terminal where your server is running you should see
   * > IS BROWSER: ?
   * > IS SERVER: ?
   */
  console.log('IS BROWSER: ', isBrowser ? '?' : '?')
  console.log('IS SERVER: ', isServer ? '?' : '?')
  console.log('IS NATIVE: ', isNative ? '?' : '?')
  return (
    <>
      Is in browser? {isBrowser ? '?' : '?'}
      <br />
      Is on server? {isServer ? '?' : '?'}
      <br />
      Is react native? {isNative ? '?' : '?'}
    </>
  )
}

Options

const {
  isBrowser,
  isServer,
  isNative,
  device, // 'server', 'browser', or 'native'
  canUseWorkers,
  canUseEventListeners,
  canUseViewport,
} = useSSR()
// OR
const [
  isBrowser,
  isServer,
  isNative,
  device, // 'server', 'browser', or 'native'
  canUseWorkers,
  canUseEventListeners,
  canUseViewport,
] = useSSR()

Todos

  • tests for array destructuring
  • set up code climate test coverage
  • add typescript array return types
  • optimize badges see awesome badge list
    • add code climate test coverage badge
  • codesandbox examples
  • continuous integration
  • greenkeeper

主要指標

概覽
名稱與所有者iamthesiz/use-ssr
主編程語言TypeScript
編程語言TypeScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2019-05-22 00:00:33
推送於2023-03-14 23:21:29
最后一次提交2023-03-14 19:21:29
發布數0
用户参与
星數263
關注者數3
派生數6
提交數145
已啟用問題?
問題數7
打開的問題數1
拉請求數28
打開的拉請求數7
關閉的拉請求數16
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?