Skip to content

NPM React Portlet

A portlet built with React, bundled using Liferay’s JS Toolkit (the most popular JS approach in Liferay).

  • Build modern, interactive UIs with React hooks.
  • Reuse existing React components in Liferay.
Terminal window
blade create -t npm-react-portlet task-manager
task-manager/src/index.js
import React, { useState } from "react";
export default function TaskManager() {
const [tasks, setTasks] = useState([
"Learn Liferay",
"Build a React portlet",
]);
const [newTask, setNewTask] = useState("");
return (
<div>
<h1>Task Manager</h1>
<ul>
{tasks.map((task) => (
<li key={task}>{task}</li>
))}
</ul>
<input
type="text"
value={newTask}
onChange={(e) => setNewTask(e.target.value)}
/>
<button onClick={() => setTasks([...tasks, newTask])}>Add Task</button>
</div>
);
}
task-manager/src/main/resources/configuration.json
{
"systemjs": {
"modules": {
"task-manager": "index.js"
}
}
}
  • Project Management: Todo lists, Kanban boards.
  • Admin UIs: Data tables with filters.