Transitioning from React to Spruce

React is a library for building user interfaces, primarily focused on the front-end. Spruce is a full-stack framework that uses TypeScript, expanding on the concepts you’re familiar with from React and applying them throughout the entire stack. This guide will help you understand how to transition from React’s component-based architecture to Spruce’s full-stack development approach.

Key Differences between React and Spruce Development

ReactSpruce
Programming LanguageJavaScript/TypeScriptTypeScript
IDEVS Code, WebStormVisual Studio Code
App LifecycleComponent Lifecycle, HooksNo Equivalent
UI DesignJSX, CSS ModulesHeartwood, ViewControllers
Event HandlingSynthetic EventsMercury
Data PersistenceState Management (Redux, Context API)Data Stores
Error HandlingError Boundaries, Try-Catch in Async CodeTry-Catch Blocks, SpruceErrors
TestingJest, React Testing LibraryTDD by the 3 laws
User AuthenticationContext API for State Management, Third-Party Services (Auth0, Firebase)Mercury, Authenticator
User PermissionsCustom Logic, Third-Party LibrariesMercury, Authorizor

Programming Language

React

Coming soon...

Spruce

import {
 AbstractSkillViewController,
 CardViewController,
 ViewControllerOptions,
 buildSkillViewLayout,
 SkillView
} from '@sprucelabs/heartwood-view-controllers'

export default class RootSkillViewController extends AbstractSkillViewController {
 public static id = 'root'
 protected cardVc: CardViewController

 public constructor(options: ViewControllerOptions) {
  super(options)
  this.cardVc = this.Controller('card', {
   header: {
    title: 'Hello, World!',
   }
  })
 }

 public render(): SkillView {
  return buildSkillViewLayout('grid', {
   cards: [this.cardVc.render()]
  })
 }
}

IDE

Coming soon...

App Lifecycle

Coming soon...

UI Design

Coming soon...

Event Handling

Coming soon...

Data Persistence

Coming soon...

Error Handling

Coming soon...

Testing

Coming soon...

User Authentication

Coming soon...

User Permissions

Coming soon...

Something Missing?

Request Documentation Enhancement

Now What?

Install the Development Theatre
It looks like you are using Internet Explorer. While the basic content is available, this is no longer a supported browser by the manufacturer, and no attention is being given to having IE work well here.