qiujian444
2019-02-13 17:49
采纳率: 100%
浏览 4.0k

关于vue单页应用中.vue文件<template>下元素标签与<script>中components的关联的问题

请问以下代码template中的sidebar是如何与script中的Sidebar关联起来的呢?初学vue.js,很多东西不是太懂,官网上也没搜到答案
还望前端大神不吝赐教,在此先行谢过。

<template>
  <div class="app-wrapper" :class="{hideSidebar:!sidebar.opened}">
    <sidebar class="sidebar-container"></sidebar>
    <div class="main-container">
      <navbar></navbar>
      <app-main></app-main>
    </div>
  </div>
</template>

<script>
import { Navbar, Sidebar, AppMain } from '@/views/layout/components'

export default {
  name: 'layout',
  components: {
    Navbar,
    Sidebar,
    AppMain
  },
  computed: {
    sidebar() {
      return this.$store.state.app.sidebar
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
.app-wrapper {
  @include clearfix;
  position: relative;
  height: 100%;
  width: 100%;
}
</style>

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • yanzhi_2016 2019-02-14 15:11
    已采纳
    1. script中通过import引入的组件,必须要在components中注册之后,才能在template中使用。
    2. 因为HTML标签对大小写不敏感,所以components中注册的组件名称如果包含大写字母,在template中可以直接转为小写字母。但是components中注册的组件名称如果是驼峰命名,在template中转为小写字母时使用“-”代替驼峰。
    已采纳该答案
    3 1 打赏 评论
  • devmiao 2019-02-13 23:51
    打赏 评论
  • Jingdsa丶 2019-02-14 09:45

    通过

    computed: {
        sidebar() {
          return this.$store.state.app.sidebar
        }
      }
    

    定义了这个sidebar组件,就可以在template中用了

    <template>
        <sidebar></sidebar>
    </template>
    

    this.$store.state.app.sidebar
    是你vuex中存放的数据,即sidebar这个组件的模板

    打赏 评论

相关推荐 更多相似问题