springboot+vue全栈开发【4.前端篇之Vue组件化开发】

embedded/2024/9/25 9:30:18/

目录

  • 前言
  • NPM使用
    • NPM简介
    • nodejs安装
    • npm命令
  • Vue CLI使用
    • 用vue CLI创建一个vue项目
  • 组件化开发
    • 组件的构成
    • 组件怎么用
      • 1.创建一个组件
      • 2.在父组件中使用子组件
      • 3. 传递数据给子组件
      • 4. 监听子组件事件

前言

hi,这个系列是我自学开发的笔记,适合具有一定编程基础(html、css那些基础知识要会!)的同学,有问题请及时指正!

NPM使用

NPM简介

  • NPM (Node Package Manager)是一个NodeJS包管理和分发工具。
  • NPM以其优秀的依赖管理机制和庞大的用户群体,目前已经发展成为整个JS领域的依赖管理工具
  • NPM最常见的用法就是用于安装和更新依赖。要使用NPM,首先要安装Node工具

nodejs安装

下载地址:https://nodejs.org/en/download 链接直达

npm命令

贴个基础命令博客:http://t.csdnimg.cn/EM8XM,链接直达

Vue CLI使用

  • Vue CLI是Vue官方提供的构建工具,通常称为脚手架。
  • 用于快速搭建一个带有热重载 (在代码修改后不必刷新页面即可呈现修改后的效果)及构建生产版本等功能的单页面应用。
  • Vue CLI基于webpack构建,也可以通过项目内的配置文件进行配置。
  • 安装: npm install -g @vue/cli
  • 如果安装不成功
    npm uninstall -g vue-cli , 再 npm install -g @vue/cli

在我们想要放vue项目的目录下,打开cmd,输入上方的命令进行安装;安装成功后,之后我们就可以快速建vue项目而不用像之前那样从vscode建html再引用vue的script

用vue CLI创建一个vue项目

创建一个vue项目,hello是项目名字
在这里插入图片描述

选择最后一个选项,eslint是检查语法风格的,学习初期不推荐用。
在这里插入图片描述
按空格取消linter/formatter,然后回车
在这里插入图片描述
选择3.x,再按回车
在这里插入图片描述
这一步是问把选择安装的依赖记录在哪个文件,选择package.json,这个json文件功能类似maven的pom.xml
在这里插入图片描述
这一步是问要不要创建快照,之后可以快速创建项目,选N
在这里插入图片描述
创建好之后,在我们刚刚的目录下会出现一个hello文件夹,点进去后完整的目录格式如下:
在这里插入图片描述
一个vue项目就创建好了!这和我在之前的博客 springboot+vue全栈开发【2.前端准备工作篇】
中创建vue项目的方法完全不一样
在这里插入图片描述

组件化开发

组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。
Vue的组件系统允许我们使用小型、独立和通常可复用的组件构建大型应用。

组件的构成

  • Vue 中规定组件的后缀名是.vue
  • 每个.vue组件都由3部分构成,分别是
  •  template,组件的模板结构,可以包含HTML标签及其他的组件
    
  •  script,组件的JavaScript代码
    
  •  style,组件的样式
    

以app.vue进行分析。如图,helloworld就是我们自定义的组件。在使用自定义组件的时候,我们需要在开头对其进行引用。
在这里插入图片描述

  • export default {...}:导出一个对象,这个对象是当前组件的配置。其中:
  •  name: 'App':指定了当前组件的名称。
    
  •  components: { HelloWorld }:注册了HelloWorld组件,这样在模板中就可以使用<HelloWorld/>标签。
    
  • #app:选择器,指定了样式应用到哪个元素上。
  • 样式属性如font-family、-webkit-font-smoothing等用于定义元素的外观。

组件怎么用

1.创建一个组件

首先,你需要创建一个Vue组件。一个Vue组件通常包括三个部分:<template>(HTML模板)、<script>(JavaScript逻辑)和<style>(CSS样式)。一般我们将自定义组件放在component目录下:
在这里插入图片描述

2.在父组件中使用子组件

在父组件中,可以通过注册和引用的方式使用子组件。以下hello.vue是我的组件文件名,HelloWorld是我给组件起的名字。

局部注册
在父组件的<script>中局部注册子组件:

<script>
import HelloWorld from './components/hello.vue'export default {components: {HelloWorld}
}
</script>

然后在父组件的模版中使用:

<template><div><HelloWorld :msg="message" /></div>
</template>

全局注册
也可以全局注册组件,使其在应用的任何地方都可用:

// main.js or any main entry file
import Vue from 'vue'
import App from './App.vue'
import HelloWorld from './components/hello.vue'Vue.component('HelloWorld', HelloWorld)new Vue({render: h => h(App),
}).$mount('#app')

3. 传递数据给子组件

可以通过props向子组件传递数据:

<HelloWorld :msg="message" />

在子组件中接受并使用这些数据,子组件就会显示父组件传递的message数据。

<template><div><h1>{{ msg }}</h1></div>
</template><script>
export default {props: {msg: String}
}
</script>

4. 监听子组件事件

可以监听子组件的事件并在父组件中处理:

<!-- 在子组件中 -->
<button @click="$emit('custom-event', eventData)">Click me</button><!-- 在父组件中 -->
<HelloWorld @custom-event="handleCustomEvent" />
// 在父组件的 methods 中
methods: {handleCustomEvent(data) {console.log('Received custom event with data:', data);}
}

http://www.ppmy.cn/embedded/9296.html

相关文章

HTML内联框架

前言&#xff1a; 我们有时候打开网页时会有广告窗的出现&#xff0c;而这些窗口并不是来自于本站的&#xff0c;而是来自于外部网页&#xff0c;只是被引用到了自己网页中而已。这一种技术可以通过内联来实现。 标签介绍&#xff1a; HTML 内联框架元素 (<iframe>) 表示…

【Flutter】序列化方案之命令行生成model

目录 方案一、json_model 一行命令&#xff0c;将json文件转为Dart model类及.g.dart。安装使用 方案二、build_runner 手动写model类&#xff0c;命令行生成.g.dart序列化类安装使用 参考 方案一、json_model 一行命令&#xff0c;将json文件转为Dart model类及.g.dart。 安装…

一次配置Docker环境的完整记录

一次配置Docker环境的完整记录 Docker环境搭建报错与解决报错一报错二报错三 Docker环境搭建 本节介绍了一次配置docker环境的完整记录&#xff1a; 编写Dockerfile文件&#xff1a; FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-develRUN rm /etc/apt/sources.list.d/cuda.l…

完成学校官网页面制作

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>教务系统</title> <style> .wap{ margin:0 auto; width:955px; } .top{ height:150px; padding-left:85px; …

【LeetCode热题100】【链表】随机链表的复制

题目链接&#xff1a;138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点&#xff0c;请你深拷贝这个链表 非常妙的思路&…

qt5-按字节读取并解析含属性的xml文件

参考&#xff1a; 对XML文件读取和编辑2-QXmlStreamReader读取 - 知乎 https://zhuanlan.zhihu.com/p/358862429 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt 5.12 代码已测试通过。 问题描述 需要按字节读取一个文档&#xff0c;解析其中具有xml格式的…

大白话!go语言中的指针、指针类型的方法接收器

go语言中的指针使用起来的比较简单。应用如下&#xff1a; 1.普通的对象取地址&#xff0c;获取对象值 符号&&#xff0c;取地址符&#xff0c;可以取变量的地址&#xff0c;或结构体对象的地址等。符号*&#xff0c;是从地址中取值&#xff08;根据栈中存储地址&#xf…

实现I.MX6ULL开发板与Windows和Ubuntu系统之间的通信

虚拟机与主机之间的连接方式确实包括桥接模式、NAT模式和仅主机模式。 桥接模式&#xff08;Bridged&#xff09;&#xff1a;在桥接模式下&#xff0c;虚拟机通过虚拟交换机直接连接到主机的物理网络上&#xff0c;就像一台独立的物理机器一样&#xff0c;拥有自己的IP地址&a…