【前端开发---Vue2】史上最详细的Vue入门教程(六) --- 工程化开发和脚手架、组件注册

简介: 【前端开发---Vue2】史上最详细的Vue入门教程(六) --- 工程化开发和脚手架、组件注册

本篇将重点讲解vue中的【工程化开发和脚手架 】【项目运行流程 】【组件化与组件注册 】......,并提供具体案例来让小伙伴们加深理解、彻底掌握!喜欢的小伙伴们点赞收藏,持续关注哦~💕


💟 上一篇文章 史上最详细的Vue入门教程(五) --- 细讲‘生命周期’

📝 系列专栏 vue从基础到起飞

声明:图片资源来自于黑马程序员公开学习资料
本人在学习当中,详细整理了笔记,供大家参考学习


一、工程化开发和脚手架

1.开发Vue的两种方式

  • 核心包传统开发模式:基于html / css / js 文件,直接引入核心包,开发 Vue。
  • 工程化开发模式:基于构建工具(例如:webpack或vite(vue3) )的环境中开发Vue。

工程化开发模式优点

提高编码效率,比如使用JS新语法、Less/Sass、Typescript等通过webpack都可以编译成浏览器识别的ES3/ES5/CSS等

工程化开发模式问题

  • webpack配置不简单
  • 雷同的基础配置
  • 缺乏统一的标准

为了解决以上问题,所以我们需要一个工具,生成标准化的配置 --- 脚手架Vue CLI

2.脚手架Vue CLI

基本介绍:

Vue CLI 是Vue官方提供的一个全局命令工具

可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】

好处:
  1. 开箱即用,零配置
  2. 内置babel等工具
  3. 标准化的webpack配置
使用步骤:
  1. 全局安装(只需安装一次即可) yarn global add @vue/cli 或者 npm i @vue/cli -g
  2. 查看vue/cli版本: vue --version
  3. 创建项目架子:vue create project-name(项目名不能使用中文)
  4. 启动项目:yarn serve 或者 npm run serve(命令不固定,找package.json)

二、项目目录介绍和运行流程

1.项目目录介绍

虽然脚手架中的文件有很多,目前咱们只需关注三个文件即可

  1. main.js 入口文件
  2. App.vue App根组件
  3. index.html 模板文件

2.运行流程

三、组件化开发

组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为。

好处:便于维护,利于复用 → 提升开发效率。

组件分类:普通组件、根组件(App.vue)。

比如:下面这个页面,可以把所有的代码都写在一个页面中,但是这样显得代码比较混乱,难易维护。咱们可以按模块进行组件划分

四、根组件 App.vue

1.根组件介绍

整个应用最上层的组件,包裹所有普通小组件

2.组件是由三部分构成

  • 前提:在vsCode编辑器的插件库中安装语法高亮插件

 

  • 三部分构成
  • template:结构 (vue2有且只能一个根元素,v䦹)
  • script: js逻辑
  • style: 样式 (可支持less,需要装包)
  • 让组件支持less
    (1) style标签,lang="less" 开启less功能
    (2) 装包: yarn add less less-loader -D 或者npm i less less-loader -D

五、普通组件的注册使用-局部注册

1.特点:

只能在注册的组件内使用

2.步骤:

  1. 创建.vue文件(三个组成部分)
  2. 在使用的组件内先导入再注册,最后使用

3.使用方式:

当成html标签使用即可

<组件名>

4.注意:

组件名规范 —> 大驼峰命名法, 如 HmHeader

5.语法:

  
  // 导入需要注册的组件
  import 组件对象 from '.vue文件路径'
  import HmHeader from './components/HmHeader'
  export default {•  // 局部注册
    components: {
     '组件名': 组件对象,
      HmHeader:HmHeaer,
      HmHeader
    }
  }

6.练习

在App组件中,完成以下练习。在App.vue中使用组件的方式完成下面布局

首先在components文件夹新建三个子组件,如下图:

HmHeader 组件代码

  
  <template>
    <div class="hm-header">
      我是hm-header
    </div>
  </template>
  <script>
  export default {
  }
  </script>
  <style>
  .hm-header {
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    background-color: #8064a2;
    color: white;
  }
  </style>

HmMain 组件代码

  
  <template>
    <div class="hm-main">
      我是hm-main
    </div>
  </template>
  <script>
  export default {
  }
  </script>
  <style>
  .hm-main {
    height: 400px;
    line-height: 400px;
    text-align: center;
    font-size: 30px;
    background-color: #f79646;
    color: white;
    margin: 20px 0;
  }
  </style>

HmFooter 组件代码

  <template>
    <div class="hm-footer">
      我是hm-footer
    </div>
  </template>
  <script>
  export default {
  }
  </script>
  <style>
  .hm-footer {
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 30px;
    background-color: #4f81bd;
    color: white;
  }
  </style>

APP.vue 根组件代码

<template>
  <div class="App">
    <!-- 头部组件 -->
    <HmHeader></HmHeader>
    <!-- 主体组件 -->
    <HmMain></HmMain>
    <!-- 底部组件 -->
    <HmFooter></HmFooter>
 
    <!-- 如果 HmFooter + tab 出不来 → 需要配置 vscode
         设置中搜索 trigger on tab → 勾上
    -->
  </div>
</template>
 
<script>
import HmHeader from './components/HmHeader.vue'
import HmMain from './components/HmMain.vue'
import HmFooter from './components/HmFooter.vue'
export default {
  components: {
    // '组件名': 组件对象
    HmHeader: HmHeader,
    HmMain,
    HmFooter
  }
}
</script>
 
<style>
.App {
  width: 600px;
  height: 700px;
  background-color: #87ceeb;
  margin: 0 auto;
  padding: 20px;
}
</style>

六、普通组件的注册使用-全局注册

1.特点:

全局注册的组件,在项目的任何组件中都能使用

2.步骤

  1. 创建.vue组件(三个组成部分)
  2. main.js中进行全局注册

3.使用方式

当成HTML标签直接使用

<组件名>

4.注意

组件名规范 —> 大驼峰命名法, 如 HmHeader

5.语法

Vue.component('组件名', 组件对象)

例: // 导入需要全局注册的组件
 import HmButton from './components/HmButton'
    //全局注册
 Vue.component('HmButton', HmButton)

6.练习

在以下3个局部组件中展示一个公共的通用按钮

如下图, 首先在components文件夹新建按钮的子组件 --- HmButton.vue

<template>
  <button class="hm-button">通用按钮</button>
</template>
 
<script>
export default {
 
}
</script>
 
<style>
.hm-button {
  height: 50px;
  line-height: 50px;
  padding: 0 20px;
  background-color: #3bae56;
  border-radius: 5px;
  color: white;
  border: none;
  vertical-align: middle;
  cursor: pointer;
}
</style>

然后在main.js中,将按钮子组件进行全局注册

// 文件核心作用:导入App.vue,基于App.vue创建结构渲染index.html
import Vue from 'vue'
import App from './App.vue'
//导入按钮子组件
import HmButton from './components/HmButton'
Vue.config.productionTip = false
 
// 进行全局注册 → 在所有的组件范围内都能直接使用
// Vue.component(组件名,组件对象)
Vue.component('HmButton', HmButton)
 
 
// Vue实例化,提供render方法 → 基于App.vue创建结构渲染index.html
new Vue({
  // render: h => h(App),
  render: (createElement) => {
    // 基于App创建元素结构
    return createElement(App)
  }
}).$mount('#app')

最后在三个布局组件中不需要引入,直接使用即可

<template>
  <div class="hm-header">
    我是hm-header
        // 直接使用
    <HmButton></HmButton>
  </div>
</template>
 
<script>
 
export default {
 
}
</script>
 
<style>
.hm-header {
  height: 100px;
  line-height: 100px;
  text-align: center;
  font-size: 30px;
  background-color: #8064a2;
  color: white;
}
</style>

相关文章
|
4天前
|
缓存 移动开发 前端开发
在PWA的开发中,HTML与CSS作为前端技术的基础,发挥着至关重要的作用
【6月更文挑战第14天】PWA(渐进式网页应用)借助HTML和CSS,提供接近原生应用的体验。HTML构建页面结构和内容,响应式设计适应各种设备,语义化标签提升可访问性,Manifest文件配置应用元数据,离线页面保证无网时体验。CSS则用于定制主题样式,创建动画效果,实现响应式布局,并管理字体和图标。两者协同工作,确保PWA在不同环境下的优秀性能和用户体验。随着前端技术进步,HTML与CSS在PWA中的应用将更加深入。
17 2
|
5天前
|
JavaScript 前端开发 Java
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
【Vue实战项目】学完前端基础后,可能你还需要掌握这些才能接手开发项目
14 0
|
6天前
|
前端开发 JavaScript 安全
微前端架构采用 TypeScript 提升开发效率和代码可靠性
【6月更文挑战第12天】微前端架构采用 TypeScript 提升开发效率和代码可靠性。TypeScript 的类型安全防止了微前端间的类型错误,智能提示与自动补全加速开发,重构支持简化代码更新。通过定义公共接口和使用 TypeScript 编写微前端,确保通信一致性与代码质量。在构建流程中集成 TypeScript,保证构建正确性。总之,TypeScript 在微前端架构中扮演关键角色,推荐用于大型前端项目。
30 4
|
12天前
|
前端开发
前端react入门day02-React中的事件绑定与组件
前端react入门day02-React中的事件绑定与组件
|
18天前
|
JavaScript 前端开发 API
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!
【前端--Vue】组件之间的多种通信方式,一文彻底搞懂组件通信!
|
1月前
|
Web App开发 缓存 前端开发
前端性能优化的整理笔记(一)
前端性能优化的整理笔记(一)
112 0
|
14天前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
20 2
|
1月前
|
移动开发 前端开发 JavaScript
10款精美的web前端源码的特效,2024年最新面试题+笔记+项目实战
10款精美的web前端源码的特效,2024年最新面试题+笔记+项目实战
|
1月前
|
存储 前端开发 JavaScript
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
48 1
|
1月前
|
XML 编解码 前端开发
css设计文本样式 前端开发入门笔记(十二)
css设计文本样式 前端开发入门笔记(十二)
13 0