我们使用Vue的单文件组件的时候,一个.vue文件就是一个组件。
例如我们创建一个School组件:

我们编写网页代码的时候有HTML结构、CSS样式、JS交互。
组件里也是同样存在这三种结构的:
- <div>
-
- div>
-
- <script>
- // 交互
- script>
-
- <style>
- /* 样式 */
- style>
模板中必须要用一个div标签包住所有的模板,不然会报错。
然后将模板的内容写在template中,Vue的内容写在script中,style正常写样式即可。
- <div>
- <div>学校名称:{{ name }}div>
- <div>学校地址:{{ address }}div>
- <button @click="showHello">点我弹窗button>
- div>
-
- <script>
- export default {
- name:"School",
- data() {
- return {
- name: "家里蹲大学",
- address: "家",
- }
- },
- methods: {
- showHello() {
- alert("Hello!");
- },
- }
- };
- script>
-
- <style>
- button{
- background-color: skyblue;
- }
- style>
这里的VueComponent必须暴露出去外界才能引用到这个组件。
当我们创建完所有的组件的后,全部都交由App.vue进行统一管理。
先对组件进行引入,然后配置components,最后在模板中使用组件:
- <div>
- <School/>
- <Student/>
- div>
-
- <script>
- import School from './School.vue';
- import Student from './Student.vue';
-
- export default {
- name: "App",
- components: {
- School,
- Student
- }
- }
- script>
main.js为入口文件,主要管理App.vue文件。
需要创建Vue实例对象和挂载Vue:
- import App from "App.vue";
-
- new Vue({
- el: "#root",
- template: `
`, - components: {
- App
- }
- })
配置root根元素和引入入口文件:
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
- <body>
- <div id="root">div>
-
- <script src="/js/vue.js">script>
- <script src="/单文件组件/main.js">script>
- body>
- html>
所以最终文件结构如下:
