当前位置: 首页 > news >正文

2.2 vue2子组件注册使用

安装插件

VSCode中实现Vue2代码高亮,推荐使用 Vetur 插件。这是Vue官方推荐的开发工具,专门为Vue.js设计,支持.vue文件的语法高亮、智能提示、代码格式化等功能。

安装方法:

  1. 打开VSCode
  2. 进入扩展面板(快捷键 Ctrl+Shift+X
  3. 搜索 Vetur 并安装
  4. 重启VSCode使插件生效

特点:

  • 支持Vue2单文件组件(.vue)的完整语法高亮
  • 包含模板、脚本和样式区域的分别高亮
  • 提供代码片段和智能提示
  • 支持格式化和错误检查

注意:如果是Vue3项目,建议使用Vue (Official) --原Volar插件替代Vetur。

 注册组件

局部注册一个欢迎卡片组件

1. 子组件:WelcomeCard.vue
<!-- components/WelcomeCard.vue -->
<template><div class="card"><h2>🎉 欢迎使用 Vue 2</h2><p>这是一个局部注册的组件</p></div>
</template><script>
export default {name: 'WelcomeCard'
}
</script><style scoped>
.card {background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);color: white;border-radius: 12px;padding: 30px;margin: 20px auto;width: 80%;max-width: 400px;text-align: center;box-shadow: 0 8px 20px rgba(0,0,0,0.1);transition: transform 0.3s ease;
}.card:hover {transform: translateY(-5px);
}.card h2 {margin: 0 0 10px 0;font-size: 24px;
}.card p {margin: 0;font-size: 16px;opacity: 0.9;
}
</style>

2. 父组件:App.vue(局部注册)
<!-- App.vue -->
<template><div id="app"><welcome-card /><welcome-card /></div>
</template><script>
// 导入组件
import WelcomeCard from './components/WelcomeCard.vue';export default {name: 'App',// 局部注册components: {WelcomeCard}
}
</script><style>
#app {font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;background-color: #f0f2f5;min-height: 100vh;display: flex;flex-direction: column;align-items: center;padding: 40px 20px;
}
</style>

3. main.js(无需修改)
import Vue from 'vue'
import App from './App.vue'new Vue({render: h => h(App)
}).$mount('#app')

🎉 效果说明

  • 页面居中显示两个美观的渐变卡片,带有悬停动效。
  • WelcomeCard 组件被局部注册在 App.vue 中,只在当前组件可用。
  • 无参数传递,组件内容是固定的。

全局注册 WelcomeCard 组件

1. 子组件:WelcomeCard.vue(保持不变)
2. 入口文件:main.js(关键:全局注册)
// main.js
import Vue from 'vue'
import App from './App.vue'// 导入组件
import WelcomeCard from './components/WelcomeCard.vue'// 全局注册组件
Vue.component('WelcomeCard', WelcomeCard)
// 或使用 kebab-case: Vue.component('welcome-card', WelcomeCard)Vue.config.productionTip = falsenew Vue({render: h => h(App)
}).$mount('#app')

3. 父组件:App.vue(无需导入或注册,直接使用)
<!-- App.vue -->
<template><div id="app"><h1 style="color: #333; margin-bottom: 30px;">Vue 2 全局组件示例</h1><welcome-card /><welcome-card /></div>
</template><script>
export default {name: 'App'
}
</script><style>
#app {font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;background-color: #f0f2f5;min-height: 100vh;display: flex;flex-direction: column;align-items: center;padding: 40px 20px;
}
</style>

✅ 效果说明

  • WelcomeCard 在 main.js 中通过 Vue.component() 全局注册
  • 所有组件都可以直接使用 <welcome-card> 或 <WelcomeCard>,无需导入。
  • 页面显示两个渐变风格的欢迎卡片,带有悬浮动效。
  • 代码更简洁,适合多个地方复用的通用组件(如按钮、弹窗、加载器等)。
http://www.lryc.cn/news/609958.html

相关文章:

  • 西门子PLC S7-1200单轴步进控制电动机
  • Axure设计Web端新增表单页面模板案例
  • 【LeetCode 热题 100】215. 数组中的第K个最大元素——(解法一)快速选择
  • 安卓逆向(基础①-Google Pixel-Root)
  • Visual Studio 2022安装与快捷键全攻略
  • 模型蒸馏(Distillation):原理、算法、应用
  • 【达梦MPP(带主备)集群搭建】
  • Selenium教程(Python 网页自动化测试脚本)
  • 华为2288H V5服务器闪红灯 无法开机案例
  • C++八股文——设计模式
  • JSON Schema
  • mybatis-plus报错Caused by: java.sql.SQLException: 无效的列类型: 1111
  • 使用 Aspose.OCR 将图像文本转换为可编辑文本
  • 微软WSUS替代方案
  • Druid手写核心实现案例 实现一个简单Select 解析,包含Lexer、Parser、AstNode
  • AJAX表单验证项目实战:实时用户名检查
  • curl发送文件bodyParser无法获取请求体的问题分析
  • Stanford CS336 assignment1 | Byte-Pair Encoding (BPE) Tokenizer
  • NeoBase:一款开源、基于AI的数据库管理助手
  • 《Python 实用项目与工具制作指南》· 2.2 变量
  • Java中给List<T> 对象集合去重
  • golang的数组
  • SpringMVC 6+源码分析(三)DispatcherServlet实例化流程 2--(url 与contrller类如何进行映射)
  • 【Spring AI快速上手 (一)】ChatModel与ChatCilent构建对话
  • 小鹏汽车前端面经
  • Python+QT开发环境搭建
  • 数据从mysql迁移到postgresql
  • 纯前端导出Excel
  • MCP安全机制深度剖析:权限控制与数据保护最佳实践
  • 体验Java接入langchain4j运用大模型OpenAi