
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
backbone.react-bridge
Advanced tools
A toolkit for transforming Marionette views to React components and vice versa.
A toolkit for transforming Backbone views to React components and vice versa. :rocket:
$ npm install --save-dev backbone.react-bridge
This function allows you to get a Backbone.View from a React component. It accepts as input a React Component instance or class along with some extra options.
Full blown example with available options:
const fooView = ReactBridge.viewFromComponent(FooComponent, {
// Provide a model for the Backbone.View
model: fooModel,
// Provide a collection for the Backbone.View
collection: fooCollection,
// By default the view gets re-rendered
// on model "change" and collection "add remove reset" events
// But you can override this using the `observe` property
observe: {
model: 'change',
collection: 'reset add remove'
},
// Define custom properties which will be passed to the React Component.
// In case that the properties overlap with the model attributes,
// the values of the model will be ovewritten.
props: {
title: 'Foo Title',
subtitle: 'Foo Subtitle'
},
// Customize the form of the properties which will be passed to the
// React Component. In case that 'getProps' is undefined, a composition
// of the model's attributes, the collection's values and the custom
// properties will be returned to the React Component
getProps() {
return {
titles: this.collection.map((m) => {title: m.get('title').toUpperCase()})
}
}
});
fooView.render();
// Or if using Marionette.js
region.show(fooView);
None of the options described above are required in order to use the viewFromComponent function.
This function allows you to get a React component from a Backbone view. It accepts either a Backbone.View instance or class along with some extra options.
Full blown example with available options:
const Bar = ReactBridge.componentFromView(BarView, {
// Override the default tagName of the element which will wrap
// the React Component. If not provided, the default tagName
// according to Backbone will be used
tagName: 'ul',
// Add a custom class on the element which will wrap the React Component
className: 'barClass',
// Using Redux? We got you covered!
// You can define actions that will be dispatched when
// specific events are triggered from the Backbone View.
// This feature requires a reference of the store's dispatch function
eventsToActions : {
// Dispatch a "BAR_SUBMIT" action when a "submit" event is triggered by the view
'submit': () => ({type: 'BAR_SUBMIT'})
}
// A reference to the Redux store's dispatch function. This function is
// used to dispatch the actions registered via the eventToActions option
dispatch: store.dispatch
});
ReactDOM.render(<Bar />, document.querySelector('#bar'));
None of the options described above are required in order to use the componentFromView function.
$ npm install
$ npm start
Enjoy! :blush:
$ npm run build
$ npm run coverage
FAQs
A toolkit for transforming Marionette views to React components and vice versa.
We found that backbone.react-bridge demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.