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

尚硅谷Vue3入门到实战 —— 02 编写 App 组件

根目录下的 index.html 是项目的入口文件,默认的具体内容如下:

src 文件夹分析

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>

入口文件中最重要的一行是 <script type="module" src="/src/main.ts"></script>,这里把 src 文件夹中的 main.ts 文件引入,src/main.ts 的内容如下:

import './assets/main.css'  // 引入 css 样式

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

import { createApp } from 'vue' : 把写应用比喻为种花,createApp 就是花盆,种花首先必须要有一个平台,createApp 就是类似这个功能(创建应用);

import App from './App.vue' :App.vue 是一个 .vue 文件(与 main.ts 在同一个目录下),所以 App 是一个组件,相当于种花的根,以后我们写的 A.vue、B.vue 等 vue 组件都需要安装在 App 这个根上,我们写的组件相当于这花上的枝叶或者花;

createApp(App).mount('#app') :简单来说,就是把花插在花盆上,用标准的语言来描述,createApp(App) 是把 App 传递给 createApp,用于创建一个应用,这个应用里所有组件的根组件;mount('#app') 的意思是把花盆摆放在指定位置,这里是指把这个应用挂载到 id=app 的 div 容器中,这个容器在 index.html 中,也就是 index.html 中的 <div id="app"></div>

src/components 是组件文件夹,种花的根是 App.vue,花的枝叶保存在 components 文件夹中;

src/assets 中存放的是 css 样式和 svg 数据;

从零构建 src 文件夹

删除项目中的src,然后在根目录下新建一个文件夹,命名为 src,然后执行下面两个步骤:

  • 创建 main.ts 文件:

    // 引入 createApp 用于创建应用
    import {createApp} from 'vue';
    // 引入 App 根组件
    import App from './App.vue';
    
    createApp(App).mount('#app');
    
    
  • 创建 App.vue 文件

    <template>
    <div class="app">
        <h1>你好啊!</h1>
    </div>
    </template>
    
    <script lang="ts">
        export default {
            name: 'App' // 组件名
        }
    </script>
    
    <style>
        .app{
            background-color: #ddd;
            box-shadow: 0 0 10px;
            border-radius: 10px;
            padding: 20px;
        }
    </style>
    

在终端运行 npm run dev,打开浏览器,可以看到:
在这里插入图片描述

参考视频:尚硅谷Vue3入门到实战


http://www.kler.cn/a/461021.html

相关文章:

  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
  • USB射频微波功率计的功能与优势-盛铂科技
  • Unity 对Sprite或者UI使用模板测试扣洞
  • 玉米中的元基因调控网络突出了功能上相关的调控相互作用。/biosample_parser.py
  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析
  • Emacs折腾日记(七)——布尔变量、逻辑运算符与位运算
  • axios拦截器底层实现原理
  • 基于SpringBoot+Vue的旅游推荐系统
  • [pdf、epub]260道《软件方法》强化自测题业务建模需求分析共216页(202412更新)
  • Doris安装部署
  • 实现单例模式的五种方式
  • jQuery学习笔记1
  • 无人机任务载荷系统之电子对抗技术!
  • 使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术
  • MyBatis-Plus 中的分页插件配置
  • 在C++中,dynamic_cast是一种用于在类的继承体系中进行安全向下转型
  • 搭建ZooKeeper分布式集群
  • 2、单片机、CC2530、zigbee期末考试选择、填空题含答案
  • 如何确保Kafka集群的高可用?
  • Cursor小试1.生成一个网页的接口请求工具
  • Django 管理界面实现自动提交和动态字段选项
  • 鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
  • C++中宏的使用方法
  • AI同传的崛起:人工同传还能坚持多久?
  • 股市学习 seekingalpha tradingview
  • OpenAI 的 o3 — AGI 还是闪亮的幻影?