A compatibility layer for running Intact component in Vue.
import Vue from 'vue';
import Intact from 'intact-vue';
class IntactComponent extends Intact {
get template() {
return `<button ev-click={self.onClick.bind(self)}>
click {self.get('value')}
</button>`;
}
onClick() {
this.set('value', this.get('value') + 1);
this.trigger('click');
}
}
const container = document.createElement('div');
document.body.appendChild(container);
const vue = new Vue({
el: container,
data: {
count: 0,
},
template: `<div>
<IntactComponent @click="onClick" v-model="count"/>
<div>count: {{ count }}</div>
</div>`,
methods: {
onClick() {
console.log(this.count);
}
},
components: {IntactComponent}
});
You can use alias config of webpack to replace intact module.
resolve: {
alias: {
'intact$': 'intact-vue'
}
}
-
.native
modifier is not supported. For example:// native modifier <IntactComponent @click.native="onClick" />
-
Intact does not supportscoped
. You should avoid using them. Use className to limit style instead of. -
Multiple values style is not supported.