--- sidebar: true excerpt: "a simple reactive runtime JS framework inspired by Vue" meta: - name: description content: a simple reactive runtime JS framework inspired by Vue - name: keywords content: Alban, David, Becker, dynaticjs, dav, web, javascript, framework --- # dynaticjs a simple reactive runtime JS framework inspired by Vue ## about - stack: js - repo: [github.com](https://github.com/adb-sh/dynaticjs) - boilerplate repo: [github.com](https://github.com/adb-sh/dynaticjs-boilerplate) - npm: [npmjs.com](https://www.npmjs.com/package/dynaticjs) ## current features - dynamic router - components (recursive) - data binding (from component to component) - trigger rerender components on data change - scoped references to DOM elements ## simple component example ```javascript import Component from "dynaticjs/Component"; import { propFactory } from "dynaticjs/helpers.js"; import RouterLink from "dynaticjs/components/RouterLink.js"; import RouterView from "dynaticjs/components/RouterView.js"; import Home from "./pages/Home.js"; export default class App extends Component { init() { return { components: { RouterLink, RouterView, }, }; } data() { return { routes: propFactory([ { name: 'home', title: 'Home', path: '/', Component: Home, }, ]), }; } render(state) { return `

DynaticJS Boilerplate

`; } setup() { console.log("Hello World :D"); console.log("#app element", this.$el); //corresponding DOM element console.log("nav element", this.$refs.nav); //scoped reference to DOM element with the attribute `ref="nav"` console.log("child components in App", this.$components) //references to child components } }; ``` [full example](https://github.com/adb-sh/dynaticjs-boilerplate/blob/master/src/App.js)