@cerebral/vue
Vue.js view for Cerebral.
Install
npm install @cerebral/vue vue
Container
import Vue from 'vue/dist/vue'
import {Controller} from 'cerebral'
import {Container, connect} from '@cerebral/vue'
const controller = Controller({
state: {
foo: 'bar'
},
signals: {
clicked: []
}
})
var app = new Vue({
el: '#app',
components: {
container: Container(controller)
}
})
Note! The HTML of the root element must use the container:
<div id="app">
<container>
<my-component></my-component>
</container>
</div>
connect
MyComponent.js
import {connect} from '@cerebral/vue'
import {state, signal} from 'cerebral/tags'
export default connect({
foo: state`foo`,
click: signal`clicked`
}, {
template: '<div v-on:click="click()">{{foo}}</div>'
})
main.js
import Vue from 'vue/dist/vue'
import {Controller} from 'cerebral'
import {Container, connect} from '@cerebral/vue'
import MyComponent from './MyComponent'
const controller = Controller({
state: {
foo: 'bar'
},
signals: {
clicked: []
}
})
var app = new Vue({
el: '#app',
components: {
container: Container(controller),
'my-component': MyComponent
}
})