为了账号安全,请及时绑定邮箱和手机立即绑定

vue的简单问题,一个项目里是不是只能一个new Vue?

vue的简单问题,一个项目里是不是只能一个new Vue?

undertale 2017-04-21 17:09:18
看到vue官网的例子就想自己试一下但是不知道怎么改,例子如下我把id app 改成了id app-7,但是main.js里那个template和components是什么意思,也要改成app-7吗?又或者我不把id app改了,直接在这个div里新建一个id app-7的div。 然后复制例子上的var app7 = new Vue({el: '#app-7',data: {groceryList: [{ text: '蔬菜' },{ text: '奶酪' },{ text: '随便其他什么人吃的东西' }]}}) 保留原来生成项目就带的new Vue ({el:app{)。所以说一个项目里可以new 两个Vue 吗?我改的对不对,到底该怎么改,才能演示官网上的例子呢?有图最好谢谢。
查看完整描述

1 回答

?
橋本奈奈未

TA贡献436条经验 获得超108个赞

template顾名思义就是模版,也就是你自定义的组件比如<App></App>标签所要渲染成的html模版,compnent就是组件的意思,官网的例子是全局注册组件,你的代码里是放到vue的实例里,想在实例的vue里使用组件结构是这样的

new Vue({
    el: '',
    data: {},
    compnents: {
        'App': {
            template: '<div>this is compnent</div>',//html字符串模版
            props: [],//父子组件通过props进行数据绑定
            data: function (){  //组件的data属性必须是函数,详解见官网
                return {
                
                }
            }
        }
    }
})

全局注册就是官网所给出的例子Vue.compnent()这里就不赘述了

查看完整回答
反对 回复 2017-04-23
  • 慕后端6169984
    慕后端6169984
    请问大神 我现在想先声明一个mine变量作为一个根元素,然后用mine.component()时,就会报错。不知道是不是就是和你这里提到的问题一样,如果想要在mine里面用组件,必须把template放在new Vue中,也就是,没有办法同时定义多个Vue实例。 ``` var mine=new Vue({ el:"#app" }); mine.component("mycomponent",{ template: `` }); ```
  • 橋本奈奈未
    橋本奈奈未
    vue的实例没有component方法。组件的注册只有两种,一种是全局注册,Vue.component, 一种是局部注册,需要在组件内部传入component对象,具体使用方法可查看官方文档。new出来的实例没有component方法,组件注册一定是在实例化之前就要准备好的
  • 1 回答
  • 0 关注
  • 15573 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信