solidjs-lazily
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

solidjs-lazily

minzip size install size dependency count

solidjs-lazily is a simple wrapper around SolidJS's lazy that supports named imports.

TL;DR

run this

npm install solidjs-lazily
# or
yarn add solidjs-lazily

write this

import { lazily } from 'solidjs-lazily'
const { MyComponent } = lazily(() => import('./MyComponent'))

instead of this

import { lazy } from 'solid-js'
const MyComponent = lazy(() => import('./MyComponent'))

Motivation

Consider that component MyComponent is exported with export default MyComponent then per solidjs docs you could do:

import { lazy } from 'solid-js'
const MyComponent = lazy(() => import('./MyComponent'))

But if the component is exported with named export export const MyComponent = ... then you have to do:

const MyComponent = lazy(() =>
  import('./MyComponent').then((module) => ({ default: module.MyComponent }))
)

With solidjs-lazily it becomes:

import { lazily } from 'solidjs-lazily'
const { MyComponent } = lazily(() => import('./MyComponent'))

Full example

See: https://codesandbox.io/s/solidjs-lazily-example-qvv3y

import { createSignal, Suspense } from 'solid-js'
import { lazily } from 'solidjs-lazily'

const { MyComponent } = lazily(() => import('./MyComponent'))

const App = () => {
  const [open, setOpen] = createSignal(false)
  return (
    <>
      {open() ? (
        <Suspense fallback={<>Loading...</>}>
          <MyComponent />
        </Suspense>
      ) : (
        <button onClick={() => setOpen(true)}>Load</button>
      )}
    </>
  )
}

Related

Package Sidebar

Install

npm i solidjs-lazily

Weekly Downloads

87

Version

0.1.2

License

MIT

Unpacked Size

5.49 kB

Total Files

8

Last publish

Collaborators

  • jlarky