Vue组件第六篇:Vue单文件组件

一:index.html

执行入口:

复制代码
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>联系一下单文件语法</title>
</head>
<body>

<div id="root">

</div>
<script type="text/javascript" src="../../js/vue.js"></script>
<!--这个叫做入口文件-->
<script type="text/javascript" src="./main.js"></script>

</body>
</html>

二:main.js

创建vue对象

复制代码
// 浏览器不能直接支持es6的模块化语法
// import浏览器不认识。
// 所以,当没有引入脚手架的时候,不能运行。
import App from './App.vue'

new Vue({
    el: '#root',
    template: `<App/>`,
    components: {App}

})

三:APP.vue

分装APP组件

复制代码
// APP的作用就是汇总所有组件
<template>
  <!-- 组件的结构-->
  <div>
    <school></school>
    <student></student>
  </div>
</template>

<script>
// 引入其他组件
// 脚手架当中vue可以写,可以不写
import school from "./School.vue";
import student from "./Student.vue";

// 这是最终的简化写法
export default {
  // 不写这个名字,别人就可以随意定义名字了。
  name: "App",
  data() {
    return {
      name: '尚硅谷',
      age: '11'
    }
  },
  methods: {
    showX() {
      alart('hello')
    }
  },
  components: {
    school, student
  }
}
</script>

四:student组件和school组件

复制代码
// 组件=html+css+js,然后又三个标签分别对应这几个内容
<template>
  <!-- 组件的结构-->
  <div class="demo">
    <h2>学校名称: {{ schoolName }}</h2>
    <h2>学校地址: {{ address }}</h2>
    <button @click="showX">点我</button>
  </div>
</template>

<script>
// 交互的代码
// const school = Vue.extend({
//   data() {
//     return {
//       schoolName: '尚硅谷',
//       address: '北京昌平'
//     }
//   },
//   methods: {
//     showX() {
//       alart('hello')
//     }
//   }
// })
//
// // 默认暴露
// export default school


// export default Vue.extend({
//   data() {
//     return {
//       schoolName: '尚硅谷',
//       address: '北京昌平'
//     }
//   },
//   methods: {
//     showX() {
//       alart('hello')
//     }
//   }
// })

// 这是最终的简化写法
export default {
  // 不写这个名字,别人就可以随意定义名字了。
  name: "school",
  data() {
    return {
      schoolName: '尚硅谷',
      address: '北京昌平'
    }
  },
  methods: {
    showX() {
      alart('hello')
    }
  }
}
</script>

<style>
/*交互的代码*/
.demo {
  background-color: #orange;
}
</style>

// 组件=html+css+js,然后又三个标签分别对应这几个内容
<template>
  <!-- 组件的结构-->
  <div class="demo">
    <h2>学生名称: {{ name }}</h2>
    <h2>学生年龄: {{ age }}</h2>
    <button @click="showX">点我</button>
  </div>
</template>

<script>
// 交互的代码
// const school = Vue.extend({
//   data() {
//     return {
//       schoolName: '尚硅谷',
//       address: '北京昌平'
//     }
//   },
//   methods: {
//     showX() {
//       alart('hello')
//     }
//   }
// })
//
// // 默认暴露
// export default school


// export default Vue.extend({
//   data() {
//     return {
//       schoolName: '尚硅谷',
//       address: '北京昌平'
//     }
//   },
//   methods: {
//     showX() {
//       alart('hello')
//     }
//   }
// })

// 这是最终的简化写法
export default {
  // 不写这个名字,别人就可以随意定义名字了。
  name: "school",
  data() {
    return {
      name: '尚硅谷',
      age: '11'
    }
  },
  methods: {
    showX() {
      alart('hello')
    }
  }
}
</script>
相关推荐
小呆呆6664 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人4 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)4 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
sunshine22 girl4 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
LOVE️YOU4 小时前
Python 函数名、函数对象与“把函数作为参数传递”
开发语言·python
码艺-Alimjan4 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
sunshine22 girl5 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
可乐鸡翅yeah_5 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒5 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
潼心1412o5 小时前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法