Skip to content

Vue 组件

组件

Vue 的核心就在于组件,组件的作用就是:复用.

小到一个按钮,大到一个页面都可以是组件

组件的三元素

每个组件都必须包含三元素

  • template(用来存放 html)

  • script(用来写 js)

  • style(用来写 css)

  • 这里千万注意:组件必须都要大写

组件外面必须有一个包裹层,否则直接报错误

html
<template>
  <div class="login">
    <header></header>
    <div class="loginbox_wrap">
      <main></main>
    </div>
    <footer></footer>
  </div>
</template>

<script>
  import Header from "@/pages/common/Header";
  import Footer from "@/pages/common/Footer";
  import Main from "@/pages/Login/components/Main";
  export default {
    data() {
      return {
        message: "登陆",
      };
    },
    components: {
      Header,
      Footer,
      Main,
    },
  };
</script>

<style lang="less" scoped>
  /*mobile*/
  @media (max-width: 767px) {
    .loginbox_wrap {
      width: 100%;
      min-height: calc(100vh - 200px - 73px);
      background: white;
    }
  }

  /*pad*/
  @media (min-width: 768px) and (max-width: 1024px) {
    .loginbox_wrap {
      width: 100%;
      min-height: calc(100vh - 108px - 150px - 50px);
      background: #f3f3f3;
      padding-top: 50px;
    }
  }

  /*desktop*/
  @media (min-width: 1025px) {
    .loginbox_wrap {
      width: 100%;
      min-height: calc(100vh - 108px - 150px - 50px);
      background: #f3f3f3;
      padding-top: 50px;
    }
  }
</style>

组件的引入必须三点

  • 第一步:引入组件(import)

  • 第二步:注册组件(components)

  • 第三步:使用组件(自定义标签)

  • 组件必须要大写

javascript
<header>
  <div class="login">
    <Header></Header>
    <main></main>
    <footer></footer>
  </div>
</header>

<script>
  import Header from '@/pages/common/Header'
  import Footer from '@/pages/common/Footer'
  import Main from '@/pages/Login/components/Main'
  export default {
    data() {
      return {
        message: '登陆'
      }
    },
    components: {
      Header,
      Footer,
      Main
    }
  }
</script>

<style lang="less" scoped></style>