前端(vue组件)

1组件对象

1.1定义组件对象 defineComponent( {} )

1.2注册组件

1.3使用组件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>组件</title>
</head>
<body><div id="app">{{person}}<my-component1></my-component1><my-component2></my-component2></div><script type="module">import { createApp, defineComponent } from './Js/vue.esm-browser.js';// 定义 MyComponent 组件const MyComponent1 = defineComponent({template: '<div><div><h1>李四真帅{{person}}</h1></div></div>',// 可以在这里添加更多的选项,如 props, data, methods 等等setup(props) {let person={name:"李四"};return{person}}});const MyComponent2= defineComponent({template: '<div><div><h1>李四真帅{{person}}</h1></div></div>',// 可以在这里添加更多的选项,如 props, data, methods 等等setup(props) {let person={name:"李四"};return{person}}});// 创建应用实例,并全局注册组件const app = createApp({// 根组件可以为空对象,因为我们在全局注册了组件components:{MyComponent1,MyComponent2},setup(props) {let person={name:"李四"};return{person}}});// 挂载应用到 DOM 中app.mount('#app');</script>
</body>
</html>
2组件对象和Vue对象的区别
vue.__proto__  == MyComponent.__proto__ ;  //true

vue是通过createApp({}) 创建的对象MyComponent是通过defineComponent({})创建的对象js中每个对象都有一个 ‌proto 属性,它指向该对象的原型对象也就是父对象也就是 vue 和 MyComponent 这两个对象拥有同一个父亲根据现象对象继承规则 , vue ≈ MyComponent

因此MyComponent 中的组件选项写法和vue中的写法一致

3组件化编程
3.1模块与组件 模块化与组件化

 4vite

网址:https://vitejs.cn/vite3-cn/guide/

vite创建项目的步骤

1 选定项目路径

2 在此路径输入指定命令: npm create vite@latest

project-name
│
├── public                  # 静态资源目录
│   ├── favicon.ico         # Favicon
│   └── index.html          # HTML 模板
│
├── src                     # 源代码
│   ├── assets              # 资源目录(图片,视频,音频等文件)
│   │   └── logo.svg        # 项目 LOGO
│   ├── components          # 组件目录( 组件对象存放目录 )
│   │   └── HelloWorld.vue  # 示例组件
│   ├── App.vue             # 主组件
│   └── main.js             # 入口文件
│
├── vite.config.js          # Vite 配置文件(重要)
└── package.json            # 依赖管理和配置文件 (重要)
└── index.html              # 主页模板文件,通常会被 public/index.html 替代 (重要)
└── README.md               # 项目说明文件 (忽略)
└── tsconfig.json           # TypeScript 配置文件,如果使用 TypeScript 的话 (忽略)
└── .gitignore              # Git 忽略文件列表 (忽略)
└── .editorconfig           # 编辑器配置文件 (忽略)
└── .eslintrc.js            # ESLint 配置文件,如果使用 ESLint 的话 (忽略)
└── babel.config.js         # Babel 配置文件,如果使用 Babel 的话 (忽略)

运行:

在项目文件夹目录下:

1 执行 npm i //安装所有的依赖

2 执行 npm run dev

项目的入口为index.html

在index.html中引入了 main.js

<!doctype html>
<html lang="en"><head><meta charset="UTF-8" /><link rel="icon" type="image/svg+xml" href="/vite.svg" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Vite + Vue</title></head><body><div id="app"></div><script type="module" src="/src/main.js"></script></body>
</html>
import { createApp } from 'vue'import './style.css' //引入样式文件
import App from './App.vue'  //此行代码等价于 let App = defineComponent({})//将App注册到vue对象上 并且 vue对象绑定页面id为app的标签
createApp(App).mount('#app')

每个vue文件就是一个组件对象

let vue文件名 = defineComponent({})

template标签来时书写组件的html标签

style标签用来书写针对html标签的样式

script中定义js数据,可以在html标签中使用这些数

5vite使用组件

语法: import 组件名 from "组件路径"

import HelloWorld from './components/HelloWorld.vue'
组件名一般首字母大写,多个单词则驼峰命名(和java类名规则一致)

5.2使用组件(在此不需要注册了)

<script setup>
//引入组件
import HelloWorld from './components/HelloWorld.vue'
</script><template>
<!--  使用组件--><HelloWorld/>
<!--  自定义标签--><div class="box">自定义标签div,字体为红色</div>
</template><style scoped>
.box{
color: red;
}
</style>


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL八股-MVCC入门

文章目录 当前读&#xff08;加锁&#xff09;快照读&#xff08;不加锁&#xff09;MVCC隐藏字段undo-log版本链A. 第一步B.第二步C. 第三步 readview MVCC原理分析RCA. 先来看第一次快照读具体的读取过程&#xff1a;B. 再来看第二次快照读具体的读取过程: RR隔离级别 当前读…

js 函数定义域

1、1 let a 1;function fun () {console.log(a) }function fun1 () {let a 2;fun(); }fun1(); 2、2 let a 1;function fun1 () {let a 2;function fun () {console.log(a)}fun(); }fun1(); 3、2 let a 1;function fun1() {function fun() {console.log(a);}let a 2;…

羽毛球匹配项目实施清单

1. 数据库设计 1.1 数据库选型 数据库&#xff1a;MySQL理由&#xff1a;关系型数据库&#xff0c;支持复杂查询和事务处理&#xff0c;适合存储用户、匹配、聊天记录等结构化数据。 1.2 表结构设计 1.2.1 用户表&#xff08;users&#xff09; 字段名 类型 描述 id BI…

初始Python篇(6)—— 字符串

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …

vue3中的v-model如何自定义修饰符

子组件封装 <script setup lang"ts"> import { defineModel } from "vue"const firstName defineModel("first-name") // 自定义组件修饰符&#xff0c;首字母大写 const [lastName, lastNameModifiers] defineModel("last-name&q…

Mac系统Android sdk的安装

在macOS系统上安装Android SDK,通常可以通过安装Android Studio来实现,因为Android Studio默认包含了Android SDK。以下是详细的安装步骤: 一、下载并安装Android Studio 访问官网:首先,打开浏览器,访问Android Studio官方网站的下载页面。下载Android Studio:点击“Do…

Vue的常用修饰符

1.事件修饰符 stop&#xff1a;阻止事件冒泡&#xff0c;相当于调用 event.stopPropagation()。 prevent&#xff1a;阻止事件的默认行为&#xff0c;相当于调用 event.preventDefault()。 capture&#xff1a;使用事件捕获模式&#xff0c;即从最外层开始触发事件。 self&…

从 CephFS 到 JuiceFS:同程旅游亿级文件存储平台构建之路

随着公司业务的快速发展&#xff0c;同程旅行的非结构化的数据突破 10 亿&#xff0c;在 2022 年&#xff0c;同程首先完成了对象存储服务的建设。当时&#xff0c;分布式文件系统方面&#xff0c;同程使用的是 CephFS&#xff0c;随着数据量的持续增长&#xff0c;CephFS 的高…

使用Python实现手写数字识别

引言: 手写数字识别是“光学字符识别技术”(简称OCR)的一个分支,它研究的对象是:如何利用电子计算机自动辨认人手写在纸张上的阿拉伯数字。 在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就…

Jenkins参数化构建详解(This project is parameterized)

本文详细介绍了Jenkins中不同类型的参数化构建方法&#xff0c;包括字符串、选项、多行文本、布尔值和git分支参数的配置&#xff0c;以及如何使用ActiveChoiceParameter实现动态获取参数选项。通过示例展示了传统方法和声明式pipeline的语法 文章目录 1. Jenkins的参数化构建1…

深入详解线性代数基础知识:理解矩阵与向量运算、特征值与特征向量,以及矩阵分解方法(如奇异值分解SVD和主成分分析PCA)在人工智能中的应用

深入详解线性代数基础知识在人工智能中的应用 线性代数是人工智能&#xff0c;尤其是机器学习和深度学习领域的基石。深入理解矩阵与向量运算、特征值与特征向量&#xff0c;以及矩阵分解方法&#xff08;如奇异值分解SVD和主成分分析PCA&#xff09;&#xff0c;对于数据降维、…

【图像处理】利用numpy实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡

直方图均衡化是一种在图像处理技术&#xff0c;通过调整图像的直方图来增强图像的对比度。 本博客不利用opencv库&#xff0c;仅利用numpy、matplotlib来实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡 直方图均衡 包括四个流程 计算图像RGB三通道的归一化直…

Reactor 响应式编程(第三篇:R2DBC)

系列文章目录 Reactor 响应式编程&#xff08;第一篇&#xff1a;Reactor核心&#xff09; Reactor 响应式编程&#xff08;第二篇&#xff1a;Spring Webflux&#xff09; Reactor 响应式编程&#xff08;第三篇&#xff1a;R2DBC&#xff09; Reactor 响应式编程&#xff08…

组织空转数据(人类+小鼠)

空间转录组&#xff08;Spatial Transcriptomics&#xff09;是一种新兴的高通量基因组学技术&#xff0c;它允许我们在组织切片中同时获取基因表达信息和细胞的空间位置信息。其可以帮助我们更好地理解细胞在组织中的空间分布和相互作用&#xff0c;揭示组织发育、器官功能和疾…

[Flutter] : Clipboard

import package:flutter/material.dart; import package:flutter/services.dart; setData Clipboard.setData(ClipboardData(text: "传入的文字内容")); getData Clipboard.getData(Clipboard.kTextPlain) 记录 &#xff5c; Flutter剪切板-刨根问底做一个可以在后台…

[数据结构#1] 并查集 | FindRoot | Union | 优化 | 应用

目录 1. 并查集原理 问题背景 名称与编号映射 数据结构设计 2. 并查集基本操作 (1) 初始化 (2) 查询根节点 (FindRoot) (3) 合并集合 (Union) (4) 集合操作总结 并查集优化 (1) 路径压缩 (2) 按秩合并 3. 并查集的应用 (1) 统计省份数量 (2) 判断等式方程是否成…

JPA 基本查询(一)

JPA 查询简介示例 JPA教程 - JPA查询简介示例 最简单的JPQL查询选择单个实体类型的所有实例。 考虑下面的查询: SELECT e FROM Employee eJPQL尽可能使用SQL语法。 SQL查询从表中选择。JPQL从应用程序域模型的实体中选择。 语法 选择查询的整体形式如下: SELECT <sel…

【操作系统1】一篇文章便可入门操作系统

操作系统 (Operating System,OS)是一种系统软件&#xff0c;它负责管理计算机的硬件和软件资源。它的主要任务是组织和调度计算机的工作&#xff0c;并分配资源给用户和其他软件。操作系统为用户和软件提供了方便的接口和环境。它是计算机系统中最基本的软件之一。 一、操作系…

μC/OS-Ⅱ源码学习(6)---事件标志组

快速回顾 μC/OS-Ⅱ中的多任务 μC/OS-Ⅱ源码学习(1)---多任务系统的实现 μC/OS-Ⅱ源码学习(2)---多任务系统的实现(下) μC/OS-Ⅱ源码学习(3)---事件模型 μC/OS-Ⅱ源码学习(4)---信号量 μC/OS-Ⅱ源码学习(5)---消息队列 本文进一步解析事件模型中&#xff0c;事件标志…

大数据第三次周赛

类斐波那契循环数 #include<bits/stdc.h> using namespace std; #define int long long int arr[1000010]; bool key(int k){int num0;string strto_string(k);for(int i0;i<str.length();i){arr[num]str[i]-0;}int l0,rnum-1;int shix0; while(shix<k){shix0;for…