- Add React-safe apprun-play-html
- Add no-init-route flag
- Save Rect in app in case it needs to be used in the future
- Create custom element that extends HTMLDivElement
- Allow require from node
- Resolve async state before running the event
- Support css selector in mount, start, and app.render
- Export safeHTML funciton
- Make the package type module
- Apply directive to app.render
- retire CLI
- Use lit-html@2
- Replaced morphdom with lit-html
- New app.query function that returns the returned values of all then event handlers
app.query(name: string, ...args): Promise<any[]>;
- Event pattern matching
app.on('ws:*', _ => 0); // handles all events that have name start with ws:
- Event context
@on('event', {c:1}) // define the context fn = ({c}) => {...}; // get the context in the handler
- BREAKING CHANGES: New logic for creating stateful components
- BREAKING CHANGES: remove props from the view function call
- Support as prop for naming the root element of components
- Support prop apprun-no-init in body to skip the init route call
- CLI: -e, --esbuild option to use esbuild instead of webpack
- CLI: -o, --story option to generate stories for a component
- Support initial state as a function or an async function
- Support promise returned from the mounted function
- Wait for all promises before set new state
- Dev Tools: save debugging flag to local storage
- Dev Tools: handle messages from redux dev tools
- Dev Tools: improve debugging event content
- Dev Tools: publish two debugging events for each event
- CLI: Support the unbundled development experiences with esm-server
- CLI: add -e option for adding ESLint
- CLI: use Jest preset: ts-jest
- CLI: use jsxFactory to app.h
- Support the list attribute
- Support webpack 5
- Set jsxFactory to app.h for TypeScript 4
- Support the list attribute
- Support style attribute using string
- Support element event handler using string
- Support xlink:href in SVG
- Add -patch-vdom-on flag on component for patching vdom before rendering
- Add route to mount options
- Add app start options type
- PR #90 - observable properties on web-component, thanks to @spurreiter
- Add @on and @customElement to window
- Export Fragment and app.h
- Add more examples to play-ground
- CLI installs ES2015 by default
- fix vdom update for child svg, remove console.assert
- Fix bug: view function called twice in create component
- Call ref attribute in JSX as a function
- Allow event to be turned or off inside a run call
- Allow mounted life cycle function to return state and Promise of state
- Pass state to mounted function
- Merge dev-tools into one file: apprun-dev-tools.js
- Allow embedding elements in JSX
- Use app['debug'] to turn on/off debug events and component cache
- Add . event to Component,a.k.s the refresh event
- Add ES6 module build: apprun.esm.js (2.20+)
- Add @customElement decorator (2.20+)
- Store _AppRunVersions in global
- New docs
- $on directive use tuple for event parameters
- Add event type to app, component and decorators
- Support Update as array of tuple to enforce the event type
- Set window['React']=app for using babel in browser
- $bind to function and tuple
- Support JSX directives $on and $bind
- Add $ event for custom directives
- Change the component wrapper element from to
- Fixed #57, #58
- Pull requests: #48, #49, #50, #52, #53, #54, #55 thanks to @phBalance, @Sebring
- Added lifecycle function: unload (beta)
- Add props to the wrapper div of stateful component, #57, thanks to @bo-kh
- Pass props to view, children to mounted functions of the stateful component
- Support class attribute in JSX
- Support class and className attribute for SVG
- Support custom attribute (with kebab case/snake case)
- Export app (non-default)
- CLI: use src and dist folder, es6 flag
- Fix CLI error: #45, thanks to @srlopez
- Support SVG
- Convert kebab-case to camelCase for data- attributes
- New logic for creating stateful component
- Add unmount function
- Add app.off function
- Server-side rendering
- Don't render vnode of false
- Add dev-tools (dist/apprun-dev-tools.js)
- Add lifecycle method: mounted
- Add event 'get-components' to retrieve the stateful component cache
- Support dataset attribute
- Add app.once function to one-time event subscription
- Add template engine for express js
- Support JSX fragments at root level
- Add debug event, use app.on('debug', p=>console.log(p)) to log state changes
- Add generic typed Component and StatelessComponent
- Support JSX fragments
- Make Component class plain class without inheritance
- Use Bootstrap 4 for CLI SPA boilerplate
- CLI generates webpack 4 configurations
- CLI targets ES2015
- Add examples of l10n, authentication, parcel, hot module reload, and server-side rendering
- Decorator converts method name and property name to action name
- Optimized Virtual DOM algorithm
- Enabled source map
- Add CLI options to generate SPA boilerplate
- Add decorator (on and update) for subscribing to event
- Not to save null or undefined state, nor to call view
- Add CLI options to initialize karma and create test spec
- Move HTML view support to apprun-html.js
- Remove rxjs
- Support stateful component
- Allow callback function in update tuple
- Attach component to element
- Add updateState function to update state properties
- Support update name alias
- Support mount to element id
- Make mount just mount, start mount and render initial state
- Publish the route event from app
- Support tuple in update for setting event options
- Use model property as initial state, if state property is undefined
- Support async update
- Added start function to component
- Added generic routing event
- Output JSON when rendering objects
- Compiled apprun.js to UMD
- Added index.d.ts
- Added CLI
- Convert component instance methods to local event
- Use _html: as the flag to render raw html
- Added hacker news demo
- Added component scoped events
- Developed own virtual dom
- Added JS framework performance demo
- Use RxJS for event pubsub
- Use morphdom
- Added router
......
- Event pubsub
- Used virtual-dom, virtual-dom-html
- Three versions: zero, jsx and html
- Demo apps