Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何使用x-template将模板与Vue组件分离_Vue.js_Vuejs2_Vue Component_Xtemplate - Fatal编程技术网

Vue.js 如何使用x-template将模板与Vue组件分离

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组件中分离出模板,但无效。 仅引用vue.js文件,不进行浏览

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);