各位大佬好,问一个关于vuejs 2.0的 componnet的问题

vue2,做tab,结合以前和新文档的写法:

clipboard.png

clipboard.png

可以看出1.0版本和2.0版本的写法几乎没什么改变,然后就是2.0不用extand了,直接用组件语法糖注册。
然后下面这是我的代码:

    <!--...-->
    <component :is="cpmt" :fData="propsMsg"></component>
    <!--...-->
    var vContent = new Vue({
            el:'#content',
            data:{
                cpmt:'summary',
                propsMsg:'',
                ...
            
            },
            components: {
                summary: {
                    template: '<div>ss</div>',
                    props: ['fData'],
                }
            }
            ...
        })

然后在两个版本的表现下截然相反。。。
先截个2.0的图:

clipboard.png

然后是1.026的图:

clipboard.png

这究竟是怎么回事?到底哪里有错误?

阅读 7.2k
2 个回答

打开 console 你会看到这个错:

[Vue warn]: Do not use built-in or reserved HTML elements as component id: summary 

这个不是错误,是建议
其实 vue 本身是推荐 .vue 的写法的
配合 webpack 可以做到按需加载组件
前提是每个组件都是单独的 .vue
你这里 summary 组件直接内嵌了
所以给你提示更加合理的写法

然后关于 2.0 和 之前的版本渲染出来的结构不一样是因为
2.0 开始使用的是 virtual dom,以前的 tag 限制都没了

推荐问题
宣传栏