Vue.js 如何使用x-template将模板与Vue组件分离
尝试按如下所示从Vue组件中分离出模板,但无效。 仅引用vue.js文件,不进行浏览Vue.js 如何使用x-template将模板与Vue组件分离,vue.js,vuejs2,vue-component,xtemplate,Vue.js,Vuejs2,Vue Component,Xtemplate,尝试按如下所示从Vue组件中分离出模板,但无效。 仅引用vue.js文件,不进行浏览 Vue.component('my-checkbox', { template: '#checkbox-template', data() { return { checked: false, title: 'Check me' } }, methods: { check() { this.checked = !this.checked; }
Vue.component('my-checkbox', {
template: '#checkbox-template',
data() {
return { checked: false, title: 'Check me' }
},
methods: {
check() { this.checked = !this.checked; }
}
});
<script type="text/x-template" id="checkbox-template">
<div class="checkbox-wrapper" @click="check">
<div :class="{ checkbox: true, checked: checked }"></div>
<div class="title"></div>
</div>
</script>
Vue.component('my-checkbox'{
模板:“#复选框模板”,
数据(){
返回{checked:false,标题:'Check me'}
},
方法:{
check(){this.checked=!this.checked;}
}
});
或任何将模板从vue组件中分离出来的替代方法。您可以在HTML文件中定义。请参阅下面的简要演示
//这是JS文件,例如app.JS
Vue.component('我的复选框'{
模板:“#复选框模板”,
数据(){
返回{checked:false,标题:'Check me'}
},
方法:{
check(){this.checked=!this.checked;}
}
});
新的Vue({el:'#app'})
/*CSS文件*/
.复选框包装{
边框:1px实心;
显示器:flex;
}
.复选框{
宽度:50px;
高度:50px;
背景:红色;
}
.checkbox.checked{
背景:绿色;
}
{{title}}
对不起,我的英语不好,这不是我的主要语言
试试看
您需要在同一目录中生成两个文件:
- 路径/to/checkboxComponent.vue
- path/to/checkboxComponent.html
在checkboxComponent.vue文件中
就我而言
我有三个具有以下目录结构的文件:
js/app.js
js/components/checkboxComponent.vue
js/components/checkboxComponent.html
在app.js中,我声明了Vue应用程序,因此require方法路径需要以点开头,如下所示:
Vue.component('my-checkbox', require('./components/checkboxComponent.vue').default);
您的
标记需要位于HTML文件中。很难从您的问题中判断这是否是我尝试过的情况,包括在单独的组件文件中,以及html文件中的组件和脚本标记。但不起作用。要使用单文件组件,您需要安装vue CLI和webpack。
Vue.component('my-checkbox', require('path/to/checkboxComponent.vue').default);
js/app.js
js/components/checkboxComponent.vue
js/components/checkboxComponent.html
Vue.component('my-checkbox', require('./components/checkboxComponent.vue').default);