https://github.com/whitphx/streamlit-component-template-react-hooks
Streamlit component lib with React hooks and template project using it
https://github.com/whitphx/streamlit-component-template-react-hooks
hacktoberfest npm streamlit
Last synced: 3 months ago
JSON representation
Streamlit component lib with React hooks and template project using it
- Host: GitHub
- URL: https://github.com/whitphx/streamlit-component-template-react-hooks
- Owner: whitphx
- License: mit
- Created: 2021-09-19T13:21:05.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-24T23:09:11.000Z (4 months ago)
- Last Synced: 2025-03-26T23:04:38.669Z (4 months ago)
- Topics: hacktoberfest, npm, streamlit
- Language: TypeScript
- Homepage:
- Size: 1.03 MB
- Stars: 61
- Watchers: 2
- Forks: 14
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# streamlit-component-template-react-hooks
[](https://github.com/whitphx/streamlit-component-template-react-hooks/actions/workflows/lib-test.yaml)
[](https://www.npmjs.com/package/streamlit-component-lib-react-hooks)
[](https://www.npmjs.com/package/streamlit-component-lib-react-hooks)[](https://ko-fi.com/D1D2ERWFG)
[](https://github.com/sponsors/whitphx)
This repo contains below.
* A template for creating Streamlit Components with React Hooks and functional component style: [`./template`](./template).
* This is based on [the official React template](https://github.com/streamlit/component-template/tree/master/template). The original code has been copied to this repo and fixed to use React Hooks.
* The source code of `streamlit-component-lib-react-hooks` npm package, which provides React-Hooks style API for Streamlit Component: [`./streamlit-component-lib-react-hooks`](streamlit-component-lib-react-hooks).
* This is only for development purpose and the users of `./template` do not have to see it.## Quickstart for the component template
* Ensure you have [Python 3.6+](https://www.python.org/downloads/) and [Node.js](https://nodejs.org) installed.
* Clone this repo.
* Create a new Python virtual environment for the template:
```
$ cd template
$ python3 -m venv venv # create venv
$ . venv/bin/activate # activate venv
$ pip install streamlit # install streamlit
```
* Initialize and run the component template frontend:
```
$ cd template/my_component/frontend
$ yarn # Install npm dependencies. `npm install` can be used instead.
$ yarn start # Start the Webpack dev server. `npm run start` can be used intead.
```
* From a separate terminal, run the template's Streamlit app:
```
$ cd template
$ . venv/bin/activate # activate the venv you created earlier
$ streamlit run my_component/__init__.py # run the example
```
* If all goes well, you should see something like this:

* Modify the frontend code at `my_component/frontend/src/MyComponent.tsx`.
* Modify the Python code at `my_component/__init__.py`.