Vue 2 组件创建全指南:一步一步学习

文章目录

  • [步骤 1: 创建组件文件](#步骤 1: 创建组件文件)
      • [步骤 2: 定义模板](#步骤 2: 定义模板)
      • [步骤 3: 添加脚本](#步骤 3: 添加脚本)
      • [步骤 4: 添加样式](#步骤 4: 添加样式)
      • [步骤 5: 使用组件](#步骤 5: 使用组件)

步骤 1: 创建组件文件

通常,一个 Vue 组件被创建为一个单文件组件 (Single File Component),这意味着它的模板、脚本和样式都包含在一个 .vue​ 文件中。首先,创建一个新的 .vue​ 文件,比如 MyComponent.vue​。

步骤 2: 定义模板

组件的模板定义了 HTML 结构,并可以使用 Vue 的指令进行数据绑定和交互。模板部分位于 <template>​ 标签内。

MyComponent.vue

vue 复制代码
<template>
  <div>
    <h1>{{ message }}</h1>
    <button @click="updateMessage">点击我</button>
  </div>
</template>

步骤 3: 添加脚本

<script>​ 标签中,你可以定义组件的状态(数据)、方法、生命周期钩子等。这里是组件的逻辑部分。

vue 复制代码
<script>
export default {
  data() {
    return {
      message: 'Hello, Vue!'
    };
  },
  methods: {
    updateMessage() {
      this.message = '你好,Vue 2!';
    }
  }
}
</script>

步骤 4: 添加样式

组件的样式可以在 <style>​ 标签中定义。你可以选择使样式局部有效(默认行为,通过添加 scoped​ 属性)或全局有效。

vue 复制代码
<style scoped>
h1 {
  color: blue;
}
button {
  background-color: green;
  color: white;
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}
</style>

步骤 5: 使用组件

为了在 Vue 应用中使用这个组件,你需要在父组件中导入并注册它。例如,如果你想在 App.vue​ 组件中使用 MyComponent​,可以这样做:

vue 复制代码
<template>
  <div id="app">
    <my-component></my-component>
  </div>
</template>

<script>
import MyComponent from './components/MyComponent.vue';

export default {
  name: 'App',
  components: {
    MyComponent
  }
}
</script>

相关推荐
Highcharts.js2 小时前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发
放下华子我只抽RuiKe511 小时前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
XinZong12 小时前
OpenClaw 实现双重心跳(Heartbeat)+ clawreach虾聊项目实现
javascript
还有多久拿退休金14 小时前
一张栈的图,治好你面试答不出 script 阻塞的病
前端·javascript
zithern_juejin14 小时前
原型与原型链
javascript
还有多久拿退休金15 小时前
我用 Three.js 造了个 3D 漫步世界,角色走路像喝醉了——以及我是怎么修好的
前端·vue.js
LJA6484416 小时前
为什么 AI 时代更需要配置化组件库
vue.js
008爬虫实战录16 小时前
【码上爬】 题十二:如来神掌 困难, JSVMP加密,使用代理补环境
前端·javascript·node.js
threelab17 小时前
Three.js 数学函数着色器 | 三维可视化 / AI 提示词
javascript·人工智能·着色器
ZC跨境爬虫18 小时前
跟着 MDN 学CSS day_3:(为一个传记页面添加样式)
前端·javascript·css·ui·音视频·html5