一般在开发中,我们会人为把组件分2个目录存放,一个代表的页面组件,另一个代表页面一部分的子组件。

src/
  |- views/
     |- Home.vue
  |- components/
  |- App.vue
  |- main.js

Vue cli之创建组件_css样式

 

 在组件中编辑三个标签,编写视图、vm对象和css样式代码。

 

1、template 编写html代码的地方

<template>
  <!-- template标签里面有且只有一个子标签 -->
  <div>
    <h1>Home页面</h1>
    <button @click="num--">-</button>
    <input type="text" size="1" v-model="num" id="">
    <button @click="num++">+</button>
  </div>
</template>

  

2、script编写vue.js代码

<script>
export default {
  name: "Home",   // 定义组件名,组件名和文件名一致,每个单词首字母大写
  data(){  // 注意:data必须是一个函数,函数的返回值必须是一个json对象
    return {
      num: 10
    }
  }
};
</script>

  

3、style编写当前组件的样式代码

<style scoped>
/*
  scoped 声明当前style的css样式只能在当前组件中有效,不会影响其他的组件
  如果不声明,则变成全局样式,会污染其他组件的外观效果
 **/
h1{
  color: red;
}
button {
  border-radius: 5px;
  border: 1px solid #ccc;
}
</style>

  

接下来,就可以把Home页面导入到App.vue,让用户可以直接访问。App.vue,代码:

<template>
  <div id="app">
    <Home></Home>
  </div>
</template>

<script>
// import 变量名 from '包路径'
// import {变量名1, 变量名2,...} from '包路径'
import Home from "./views/Home";
export default {
  name: 'App',  // 组件名,
  components: { // 子组件
    Home,
  }
}
</script>

<style>

</style>

  

效果:

Vue cli之创建组件_json对象_02

 

 从上面可以看到,虽然我们现在使用了单文件组件,但是之前我们在脚本化阶段学习过的所有语法,在这里都是通用的。