Vue 3:玩一下web前端技术(五)

news2024/9/29 9:23:59

前言

本章内容为VUE语法的简单学习与相关语法讨论。

上一篇文章地址:

Vue 3:玩一下web前端技术(四)_Lion King的博客-CSDN博客

下一篇文章地址:

Vue 3:玩一下web前端技术(六)_Lion King的博客-CSDN博客

一、语法的简单学习

1、导入模块

在Vue中,我们可以使用不同的方式导入模块。下面是几个常见的实际例子:

(1)导入单个模块并赋值给一个变量:

import moduleA from './moduleA';


在这个例子中,我们导入名为moduleA的模块,并将其赋值给变量moduleA。我们可以使用moduleA访问导入的模块。

(2)导入多个模块并赋值给不同的变量:

import { moduleA, moduleB } from './modules';


在这个例子中,我们从一个名为modules的文件中同时导入moduleA和moduleB模块,并将它们分别赋值给变量moduleA和moduleB。我们可以使用这两个变量访问导入的模块。

(3)导入整个模块并使用其命名空间:

import * as utils from './utils';


在这个例子中,我们导入一个名为utils的模块,并将其所有导出内容赋值给变量utils。我们可以使用utils来访问导入的模块的所有方法和属性。

(4)导入模块并重命名:

import { moduleA as myModuleA } from './modules';


在这个例子中,我们从一个名为modules的文件中导入moduleA,并将其重命名为myModuleA。我们可以使用myModuleA来访问导入的模块。

2、创建Vue应用实例的方法

使用全局函数createApp,这也是vue-cli创建工程后的默认方式。

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

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

3、vue文件的编写方式

就三部分:html、js、css

4、以App.vue与HelloWorld.vue为例,看VUE文件之间的交互方式

App.vue改写如下:

<template>
  <HelloWorld msg="欢迎来到我的世界!!!"/>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

<style>

</style>

HelloWorld.vue改写如下:

<template>
    <h1>{{ msg }}</h1>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

<style>

</style>

 其实,这两个Vue文件之间的交互逻辑非常简单。让我来逐步解释一下:

(1)在App.vue文件中,我们首先引入了HelloWorld.vue组件。

import HelloWorld from './components/HelloWorld.vue'

这样做是为了能够在App.vue中使用HelloWorld组件。这得利于我们在HelloWorld.vue的组件配置中,我们定义了一个name属性,用于标识组件的名称。

name: 'HelloWorld'

(2)接下来,我们在App.vue的组件配置中注册了HelloWorld组件。

components: {
  HelloWorld
}

这样做是为了使HelloWorld组件在App.vue中可以被使用。

(3)在App.vue的模板中,我们使用了HelloWorld组件,并通过属性props传递了一个名为"msg"的值。

<HelloWorld msg="欢迎来到我的世界!!!"/>

这里的"msg"属性值是一个字符串类型,它将作为HelloWorld组件的"msg"属性的值。

(4)在HelloWorld.vue文件中,我们首先定义了一个模板,其中我们使用了"msg"属性的值。

<h1>{{ msg }}</h1>

这里的"msg"是通过props属性传递进来的。这得利于我们在HelloWorld.vue文件中定义了一个props属性,类似于外部接口,用于接收其他vue文件传过来的数值,其中包含了一个名为"msg"的属性。这样做是为了声明HelloWorld组件可以接受一个名为"msg"的属性,并且该属性的类型是字符串。

props: {
  msg: String
}

基本上,这就是这两个Vue组件之间的交互逻辑。通过使用props属性,在App.vue中传递了一个值给HelloWorld.vue组件,并在HelloWorld.vue中使用该值。这样,HelloWorld.vue组件就可以根据传递的值进行相应的逻辑操作和渲染。

二、相关语法讨论

1、为什么import App1 from './App.vue'与import App from './App.vue'  效果一样?

这两个import语句的效果相同是因为在这种情况下,导入的是同一个模块或文件。

在JavaScript中,使用import语句可以导入其他模块(或文件)中暴露的函数、变量或组件。在这个例子中,'./App.vue'是一个Vue组件文件的相对路径。

当你使用import语句时,你可以给导入的模块或文件起一个新的名称,这是为了方便在你的代码中引用它。在这里,App1和App就是起的名称。

两个import语句的差异在于导入的名称。如果你使用import App1 from './App.vue',那么你在后续的代码中就可以使用App1引用这个Vue组件。同样地,如果你使用import App from './App.vue',你就可以使用App引用这个Vue组件。

所以,无论你使用哪个名称,最终导入的是同一个Vue组件,它们的效果是一样的。使用哪个名称主要取决于你的个人偏好和代码的可读性。

2、'./App.vue'只有一个默认名称App,为什么导入App1也可以?

在这段代码中,`App.vue`中定义了一个组件名为`App`,然后使用了`components`选项将另一个组件`HelloWorld`注册为`App`组件的子组件。

在导入`App1`时,由于`App.vue`导出的是一个默认导出的对象,导入时可以使用任何名称,相当于将App这个值给到变量App1了,类似于重命名的效果。所以你将`App.vue`导入为`App1`是完全合法的。

实际上,导入时的名称并不会影响导入的内容,关键是导入路径必须正确。一般来说,我们会使用与导出的组件名称相同的变量名来导入组件以提高代码的可读性。但是,随意给导入的组件一个不同的变量名是没有问题的。

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

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

相关文章

算法与数据结构(四)--排序算法

一.冒泡排序 原理图&#xff1a; 实现代码&#xff1a; /* 冒泡排序或者是沉底排序 *//* int arr[]: 排序目标数组,这里元素类型以整型为例; int len: 元素个数 */ void bubbleSort (elemType arr[], int len) {//为什么外循环小于len-1次&#xff1f;//考虑临界情况&#xf…

自动驾驶感知系统-全球卫星定位系统

卫星定位系统 车辆定位是让无人驾驶汽车获取自身确切位置的技术&#xff0c;在自动驾驶技术中定位担负着相当重要的职责。车辆自身定位信息获取的方式多样&#xff0c;涉及多种传感器类型与相关技术。自动驾驶汽车能够持续安全可靠运行的一个关键前提是车辆的定位系统必须实时…

为什么你的独立站有流量没转化?如何做诊断检查?

新店的创业初期&#xff0c;即使网站有流量&#xff0c;但是销售额为零的情况也常有发生。如果你确定流量是高质量的&#xff0c;寻找阻止潜在客户购买的具体因素可能会感到困难重重。 从“立即购买”按钮的色彩选择这样的细节&#xff0c;到构建品牌故事这样的大计划&#xf…

开发一个RISC-V上的操作系统(四)—— 内存管理

目录 往期文章传送门 一、内存管理简介 二、Linker Script 链接脚本 三、动态分配内存 四、测试 往期文章传送门 开发一个RISC-V上的操作系统&#xff08;一&#xff09;—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统&#xff08;二…

springboot创建并配置环境(三) - 配置扩展属性(上集)

文章目录 一、介绍二、配置文件application.yml 一、介绍 在上一篇文章&#xff1a;springboot创建并配置环境(二) - 配置基础环境中&#xff0c;我们介绍了springboot如何配置基础环境变量。本篇文章讨论如何处理配置文件。即来自不同位置的配置属性&#xff0c;如&#xff1…

chatglm2外挂知识库问答的简单实现

一、背景 大语言模型应用未来一定是开发热点&#xff0c;现在一个比较成功的应用是外挂知识库。相比chatgpt这个知识库比较庞大&#xff0c;效果比较好的接口。外挂知识库大模型的方式可以在不损失太多效果的条件下获得数据安全。 二、原理 现在比较流行的一个方案是langcha…

OpenLayers入门,OpenLayers使用瓦片加载事件实现瓦片加载进度条,进度条根据瓦片加载数量自动更新进度,加载完毕后隐藏进度条

专栏目录: OpenLayers入门教程汇总目录 前言 本章主要讲解OpenLayers如何使用瓦片加载事件(tileloadstart)、瓦片加载完成事件(tileloadend)以及瓦片加载错误事件(tileloadend)。 并通过OpenLayers使用瓦片加载事件通过实现瓦片加载进度条的案例,实现进度条根据瓦片加…

vue3 vant上传图片

在 Vue 3 中使用 Vant 组件库进行图片上传&#xff0c;您可以使用 Vant 的 ImageUploader 组件。ImageUploader 是 Vant 提供的图片上传组件&#xff0c;可以方便地实现图片上传功能。 以下是一个简单的示例&#xff0c;演示如何在 Vue 3 中使用 Vant 的 ImageUploader 组件进行…

解决Font family [‘sans-serif’] not found问题

序言 以下测试环境都是在 anaconda3 虚拟环境下执行。 激活虚拟环境 conda activate test_python_env 或 source activate test_python_env工具&#xff1a; WinSCP Visual Studio Code 这里笔者使用 WinSCP 工具连接&#xff0c;编辑工具是 Visual Studio Code 一、字体…

【Python数据分析】Python基本数据类型

&#x1f389;欢迎来到Python专栏~Python基本数据类型 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望…

C\C++内存管理

目录 1.C/C内存分布2.C语言中动态内存管理方式3.C中动态内存管理3.1new/delete内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数4.2重载operator new与operator delete&#xff08;了解&#xff09; 5.new和delete的实现原理5.1内置类型5.2 自定义类…

Vue 3:玩一下web前端技术(六)

前言 本章内容为VUE请求后端技术与相关技术讨论。 上一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;五&#xff09;_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; &#xff08;暂无&#xff09; 一、请求后端技术 1、使用Mock.js模…

【业务功能篇60】Springboot + Spring Security 权限管理 【终篇】

4.4.7 权限校验扩展 4.4.7.1 PreAuthorize注解中的其他方法 hasAuthority&#xff1a;检查调用者是否具有指定的权限&#xff1b; RequestMapping("/hello")PreAuthorize("hasAuthority(system:user:list)")public String hello(){return "hello Sp…

基于BSV的高性能并行CRC硬件电路生成器

01、引 言 循环冗余校验码&#xff0c;即Cyclic Redundancy Check (CRC), 是一种在各种通信系统中广泛应用的检错机制。CRC算法的工作原理和哈希函数类似&#xff0c;具体来说&#xff0c;其对任意长度的数据计算出一段唯一的标识&#xff08;校验和&#xff09;, 然后根据这个…

#typescript 使用file-saver模块#

场景&#xff1a;前端使用file-saver模块做导出文档的时候&#xff0c;出现两个错误 1&#xff1a;npm run build 提示找不到模块&#xff0c;如图 解决方法&#xff1a; 先卸载&#xff0c;不管是否安装都先要卸载 ,然后安装&#xff1a; npm uninstall file-saver npm…

AD21原理图的高级应用(二)层次原理图设计

&#xff08;二&#xff09;层次原理图设计 1.层次原理图概述2.层次化原理图的应用2.1 自上而下的层次化原理图2.2 自下而上的层次化原理图 3.生成层次设计表 对于大规模的电路系统,需要将其按功能分解为若干个电路模块,用户可以单独绘制好各个功能模块,再将它们组合起来继续处…

DevOps-Jenkins

Jenkins Jenkins是一个可扩展的持续集成引擎&#xff0c;是一个开源软件项目&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 官网 应用场景 场景一 研发人员上传开发好的代码到github代码仓库需要将代码下载nginx服务器部署手动下载再…

数据结构:快速的Redis有哪些慢操作?

redis 为什么要这莫快&#xff1f;一个就是他是基于内存的&#xff0c;另外一个就是他是他的数据结构 说到这儿&#xff0c;你肯定会说&#xff1a;“这个我知道&#xff0c;不就是 String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、 Hash&#xff08…

【雕爷学编程】MicroPython动手做(13)——掌控板之RGB三色灯2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

Spring使用注解进行对象装配(DI)

文章目录 一. 什么是对象装配二. 三种注入方式1. 属性注入2. 构造方法注入3. Setter注入 三. 三种注入方式的优缺点四. 综合练习 通过五大类注解可以更便捷的将对象存储到 Spring 中&#xff0c;同样也可以使用注解将已经储存的对象取出来&#xff0c;直接赋值到注解所在类的一…