🚀 Launch Week Day 4:Introducing the Alert Details Page: A Better Way to Explore Alerts.Learn More →
Socket
Book a DemoInstallSign in
Socket

@saasquatch/stencil-hooks

Package Overview
Dependencies
Maintainers
11
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@saasquatch/stencil-hooks

Stencil Component Starter

latest
npmnpm
Version
4.0.2
Version published
Maintainers
11
Created
Source

Stencil Hooks

Let's you use React-style hooks in your Stencil components. Based on haunted.

Getting Started

Prefered distribution is via NPM,

npm i @saasquatch/stencil-hooks

To use the library you need to call withHooks in the constructor of your component, and then you can use hooks inside of your render function.

import { withHooks, useState } from '@saasquatch/stencil-hooks';

@Component({
  tag: 'my-counter',
})
export class Counter {
  constructor() {
    withHooks(this);
  }

  render() {
    const [count, setCount] = useState(0);
    return (
      <div>
        {count} <button onClick={() => setCount(count + 1)}>+1</button>
      </div>
    );
  }

  disconnectedCallback() {
    // required for `useEffect` cleanups to run
  }
}

See it in action on the live demo.

FAQ

  • Shouldn't I just use Stencil state? Yes, for simple cases you should. But for more complex state use cases hooks help make your state logic more modular, testable and shareable. The core stencil team has acknowledged that internal component state is not enough, and added libraries such as stencil-store and stencil-redux and stencil-state-tunnel. stencil-hooks uses the same forceUpdate from @stencil/core that is used by stencil-store.
  • Why not X state library? The SaaSquatch team is used to thinking about state problems in hooks, so it's good for us. In some cases Redux or MobX or even Backbone might be a better solution.
  • Does this library actually work? This library has a large set of tests across most of the hooks in haunted and is used in production at SaaSquatch.

Differences from Haunted

This library re-exports most of haunted, but swaps out the Context implementation with dom-context.

FAQs

Package last updated on 03 Jun 2024

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