Vue Js如何在单个文件模板的mixins中使用?

Pen*_*ers 9 javascript frontend vue.js vue-component vuejs2

大家好,我是Vue JS的新手,我正尝试使用单个文件模板在我的过滤器上使用mixins,但遇到了一些麻烦

我收到错误

Unknown custom element: <side-bar-one> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 
Run Code Online (Sandbox Code Playgroud)

component.js

Vue.component('sideBarOne', require('./component/sidebars/sideBarOne.vue'));
Run Code Online (Sandbox Code Playgroud)

sideBarOne.vue

import { default as config } from '../../../config';
import { filters as filter } from '../../../mixins/filters';

export default {
        mixins: [
            filter,
        ],
        mounted: function() {
        }
 }
Run Code Online (Sandbox Code Playgroud)

filter.js

import { default as config } from '../config';
module.exports = {
    filters: {
        useLGLogo( str ) {
            if( str ) {
                return config.LG_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
            }
        },
        useMDLogo( str ) {
            if( str ) {
                return config.MD_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
            }
        },
        useSMLogo( str ) {
            if( str ) {
                return config.SM_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
            }
        },
    }
};
Run Code Online (Sandbox Code Playgroud)

Pen*_*ers 5

我对文件进行了一些更改并使其正常运行

filter.js

    import { default as config } from '../config';
    var filters = {
        filters: {
            useLGLogo( str ) {
                if( str ) {
                    return config.LG_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
                }
            },
            useMDLogo( str ) {
                if( str ) {
                    return config.MD_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
                }
            },
            useSMLogo( str ) {
                if( str ) {
                    return config.SM_LOGO + str.replace(/\s+/g, '-').toUpperCase() + '.png';
                }
            },
        }
    };

export default filters;
Run Code Online (Sandbox Code Playgroud)

sideBarOne.vue

import { default as filters } from '../../../mixins/filters';
    export default {
        mixins: [
            filters,
        ],
        mounted: function() {
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用单个名称导入默认导出。`导入过滤器来自`,而不是`import {默认为过滤器}` (6认同)