前端(vue组件)

news/2024/12/17 12:02:20/
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.ppmy.cn/news/1555848.html

相关文章

【嵌入式软件】跑开发板的前置服务配置

在嵌入式开发中,通常需要在 开发板和主机之间共享、传输和挂载文件。 这篇文章是关于如何在 Ubuntu 中配置 Samba、TFTP 和 NFS 协议的详细步骤。这些协议分别用于远程文件共享、文件传输和内核挂载文件系统。 如何安装协议: 参考:ubuntu18配置:详细的内容我手写了一份文档。…

派单调度啊

派单调度流程 在抢单业务中&#xff0c;用户下单成功由服务人员或机构进行抢单&#xff0c;抢单成功服务人员上门服务&#xff0c;除了抢单业务系统还设计了派单业务&#xff0c;由系统根据用户订单的特点自动派给合适的服务人员。 系统派单的目的是什么&#xff1f; 根据订…

鸿蒙系统-前端0帧起手

鸿蒙系统-前端0帧起手 先search 一番 找到对应的入门文档1. 运行项目遇到问题 如下 &#xff08;手动设计npm 的 registry 运行 npm config set registry https://registry.npmjs.org/&#xff09;2.运行后不支持一些模拟器 配置一下&#xff08;如下图&#xff0c;运行成功&am…

Amazon Bedrock与AWS服务的无缝集成,如何打造智能化应用

在AI和大数据飞速发展的今天&#xff0c;Amazon Bedrock作为AWS的一项新兴服务&#xff0c;正逐渐成为开发者和企业拥抱生成式AI的核心工具。那么&#xff0c;Amazon Bedrock与AWS其他服务结合&#xff0c;究竟能够带来哪些强大的应用场景呢&#xff1f;今天九河云就来和大家探…

批量导出工作簿中高清图片-Excel易用宝

我同事在工作簿中做了三个图表&#xff0c;现在需要将工作簿中的图标导出保存为高清图片&#xff0c;通过右键另存为保存的图片并非高清图片&#xff0c;其实要把Excel工作簿中的图表或图片对象导出为高清图片也很简单。 单击Excel易用宝 Plus&#xff0c;导出高清图片。 在导出…

Visual Studio 2022+CMake配置PCL1.14.1

前言 本教程只是提供高效的PCL配置流程&#xff0c;不提供Qt环境配置&#xff0c;如果需要GUI界面&#xff0c;则需要自寻查找Cmake配置QT的教程。请相信&#xff0c;在CMake之下没有任何事是困难的&#xff0c;最困难的工作已经由前辈们完成。因此&#xff0c;对于C用户来说学…

【大语言模型】ACL2024论文-27 Mementos:一个全面的多模态大型语言模型在图像序列推理上的基准测试

【大语言模型】ACL2024论文-27 Mementos&#xff1a;一个全面的多模态大型语言模型在图像序列推理上的基准测试 目录 文章目录 【大语言模型】ACL2024论文-27 Mementos&#xff1a;一个全面的多模态大型语言模型在图像序列推理上的基准测试目录文章摘要研究背景问题与挑战如何…

Artec Leo3D扫描仪在重型机械设备定制中的应用【沪敖3D】

挑战&#xff1a;一家加拿大制造商需要有效的方法&#xff0c;为富于变化且难度较高的逆向工程&#xff0c;快速、安全、准确地完成重型机械几何采集。 解决方案&#xff1a;Artec Leo, Artec Studio, Geomagic for SOLIDWORKS 效果&#xff1a;Artec Leo三维扫描代替过去的手动…