关于vue脚手架的写法的一个疑问!

import App from './App'

new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

这里不是已经把App.vue引入进来在components: {App}这里当组件使用了吗?而且App.vue里面也有template标签啊,为什么还要在这里加template: '<App/>'?(删掉好像还渲染不出东西,并且也没看见哪里有使用这个标签)

阅读 4k
4 个回答

你只引入了 App 组件,但并没有渲染或者说使用它。

                                                    --QQ群网友
                                                    

感觉上面这个说法很好理解

或者这样使用

<div id="app">
    <App><App/>
</div>

这里的template就是一个模板了,就是将<App/>挂载到#app这个元素,<App/>本身是一个组件。

谢邀。
首先你要去理解 vue component
把TA看成一颗树,类似DOM树的关系。
你这个代码段,应该是入口文件里面的。
也就是申明 组件树的 根组件。

html
  _ body
    - div#app
        App
        

vue 里面的 组件渲染,你可以理解成 占位符替换。也就需要有占位符的该你那,<App/>就是占位符
上面的App的位置,最终渲染后就替换成你App.vue 组件里面定义的template 内容。

另外,App.vue 这种文件是 vue 为了方便整合 组件化设计的一种文件格式。
然后通过 vue-loader 去预加载.vue 文件。解析里面的 template,script,style等内容。最终也会转换成标准的vue component定义形式。

Vue.component('App', {
  template: '<div>我是App组件里面的内容</div>',
  data: function () {
    return {
    }
  }
})

一个字符串模板作为 Vue 实例的标识使用。模板将会 替换 挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发 slot。
App.vue是这个程序的主程序,所有的程序都是基于它。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题