Vue3 菜鸟入门(三)超详细:引用外部依赖、组件、路由

【学习笔记】Vue3 菜鸟入门(三)超详细:引用外部依赖、组件、路由

  • 关键词:Vue 、Vue 3、Java、Spring Boot、Idea、数据库、一对一、培训、教学
  • 本文主要内容含Vue 基本框架 模板语法、指令
  • 计划1小时完成,请同学尽量提前准备。本部分主要是代码实践。
  • 有学习需要请联系:xujian_cq
  • 手把手教学、腾讯会议一对一培训,所有代码都要敲一遍,有问题随时暂停解决
  • 前置内容:Vue3 菜鸟入门(二)超详细:基本框架 模板语法和指令

重要提示:

本文所用源代码为【Vue3 菜鸟入门(二)超详细:基本框架 模板语法和指令】中的内容,请先看上文

1 引用外部依赖

  • vue可利用node.js引用外部依赖,这使得全世界的代码为我所用
  • 极大地降低了开发难度

1.1 引入element-plus

  • 本文引入element-plus进行示例,这个很厉害
  • Element UI 是一套采用 Vue 2.0 作为基础框架实现的组件库,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助网站快速成型

1.1.1 改造main.js

  • 这一步不是必须的,element-plus包含很多优秀组件、样式,这样能全局使用
  • 可以直接覆盖以前的main.js
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'const app = createApp(App)app.use(ElementPlus)
app.mount('#app')

1.1.2 install

  • 终端(命令行)中执行install命令
npm install element-plus
  • 成功如下图

在这里插入图片描述

1.1.3 验证

  • 将Index.vue中的button整体内容改为
<el-button type="danger" v-on:click="onBtnClick()">点我</el-button>
  • 刷新页面,发现按钮已经变成element-plus的样式了
  • 可以试试把button的type改为warning、primary等等,看下效果
    在这里插入图片描述

1.2 引入axios

  • 网络请求非常好用的工具

1.2.1 install

npm install axios

1.2.2 import

import axios from 'axios'

1.2.3 调用

  • 下方链接是本人的一个网站监控项目的一个接口,这里用来试验
https://www.xujian.tech/atlapi/web/monitor/user/login/query/83bf11c3afbc1e6a22eb732456ff8fae
  • 使用axios进行请求
let url = "https://www.xujian.tech/atlapi/web/monitor/user/login/query/83bf11c3afbc1e6a22eb732456ff8fae";
axios.get(url).then(res=>{console.log(res.data);
})
  • 控制台中看到的执行效果如下图,出现右侧的succeed的结果,即为成功
    在这里插入图片描述

1.2.4 Index.vue完整源码参考

<template><div>Hello World!{{message}}<el-button type="primary" v-on:click="onBtnClick()">点我</el-button></div>
</template>
<script >import axios from 'axios'import {defineComponent} from "vue";export default defineComponent({// 初始执行,类似onLoadmounted() {console.log("Index.vue 已开始执行。");},// 数据管理data(){return {message: "123"}},// 方法管理methods:{onBtnClick(){this.message = "456";// 发起请求let url = "https://www.xujian.tech/atlapi/web/monitor/user/login/query/83bf11c3afbc1e6a22eb732456ff8fae";axios.get(url).then(res=>{console.log(res.data);})}}})
</script><style scoped></style>

2 自定义组件

  • 这里我们自定义一个用户信息卡用作演示
  • 这个用户信息卡显示用户姓名、邮箱、头像

2.1 在components文件夹建一个UserCard.vue

  • 新建后,仍是template、scrpit、style标签先写好,script的模板先套好
  • 下方这个模板,以后可以直接复制用于新建页面、组件
<template><div></div>
</template>
<script >import axios from 'axios'import {defineComponent} from "vue";export default defineComponent({// 初始执行,类似onLoadmounted() {console.log("UserCard.vue 已开始执行。");},// 数据管理data(){return {}},// 方法管理methods:{}})
</script><style scoped></style>

2.2 编写UserCard.vue源码

  • 根据HTML、CSS的知识编写一个UserCard界面
  • 课上请自行敲一遍
<template><div><UserCard outSideText="来自外部的文字"></UserCard>Hello World!{{message}}<el-button type="primary" v-on:click="onBtnClick()">点我</el-button></div>
</template>
<script >import axios from 'axios'import {defineComponent} from "vue";import UserCard from '../components/UserCard.vue';export default defineComponent({components:{UserCard},// 初始执行,类似onLoadmounted() {console.log("Index.vue 已开始执行。");},// 数据管理data(){return {message: "123"}},// 方法管理methods:{onBtnClick(){this.message = "456";// 发起请求let url = "https://www.xujian.tech/atlapi/web/monitor/user/login/query/83bf11c3afbc1e6a22eb732456ff8fae";axios.get(url).then(res=>{console.log(res.data);})}}})
</script><style scoped></style>

2.3 Index.vue 中调用

  • 完整源码如下,注意下方源码中关于“组件”的三个注释处
<template><div><!-- 调用组件 --><UserCard outSideText="来自外部的文字"></UserCard>Hello World!{{message}}<el-button type="primary" v-on:click="onBtnClick()">点我</el-button></div>
</template>
<script >import axios from 'axios'import {defineComponent} from "vue";//引用组件import UserCard from '../components/UserCard.vue';export default defineComponent({//声明组件components:{UserCard},// 初始执行,类似onLoadmounted() {console.log("Index.vue 已开始执行。");},// 数据管理data(){return {message: "123"}},// 方法管理methods:{onBtnClick(){this.message = "456";// 发起请求let url = "https://www.xujian.tech/atlapi/web/monitor/user/login/query/83bf11c3afbc1e6a22eb732456ff8fae";axios.get(url).then(res=>{console.log(res.data);})}}})
</script><style scoped></style>

2.4 运行效果

  • 效果如下
    在这里插入图片描述

2.5 组件接收外部参数

  • 见上方源码“outSideText”相关内容

3 路由

3.1 install依赖

npm i vue-router

3.2 创建一个登录页

  • 创建views/login/Index.vue
  • 内容请自行摸索搞定

3.3 修改在Vue.app

  • 不再固定内容,改为使用RouterView
<script setup>
import {RouterView } from 'vue-router'
</script><template><RouterView />
</template><style scoped></style>

3.4 修改main.js

  • 增加一个use
// 故意不多写,你觉得该放哪儿
app.use(router)

3.5 编辑router规则

  • 在views同级处创建router文件夹,再在其中创建index.js
import { createRouter,createWebHistory } from "vue-router";
import LoginVue from '../views/login/Index.vue'
import IndexVue from '../views/Index.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),// 以后路由变化,只需要修改这里就行了routes:[{path:'/',name:'index',component: IndexVue,},{path:'/login',name:'login',component: () => import('../views/login/Index.vue')},]
})
export default router;

3.6 运行效果

  • 查看运行效果
  • 访问(注意,你的端口可能不同)
http://localhost:5173/login
  • 效果如下:
    在这里插入图片描述

4 结语

  • 即使作为老司机,把这些东西调通也是不容易的啊!

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

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

相关文章

计算机是如何工作的(上篇)

计算机发展史 世界上很多的高科技发明,来自于军事领域 计算机最初是用来计算弹道导弹轨迹的 弹道导弹 ~~国之重器,非常重要 两弹一星 原子弹,氢弹,卫星(背后的火箭发射技术) 计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一…

Python py文件打包成 exe文件

文章目录 安装 pyinstaller 模块pyinstaller 的使用pyinstaller 常用参数多文件打包 安装 pyinstaller 模块 pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple在 pyinstaller 模块安装成功之后&#xff0c;在 Python 的安装目录下的 Scripts 目录下会增加…

解决VS Code安装远程服务器插件慢的问题

解决VS Code安装远程服务器插件慢的问题 最近想在服务器上做juypter notebook的代码运行&#xff0c;发现要给服务器安装Jupyter插件&#xff0c;但是安装速度奇慢无比&#xff08;因为服务器不连外网&#xff09;&#xff0c;一开始查看从VS Code插件市场下载插件的博客&…

Apache Spark 在爱奇艺的应用实践

01 Apache Spark 在爱奇艺的现状 Apache Spark 是爱奇艺大数据平台主要使用的离线计算框架&#xff0c;并支持部分流计算任务&#xff0c;用于数据处理、数据同步、数据查询分析等场景&#xff1a; 数据处理&#xff1a;在数据开发平台中支持开发者提交 Spark Jar 包任务或Spar…

macOS 运行xxx.command文件提示”无法执行,因为您没有正确的访问权限“解决方法

使用苹果mac电脑运行.command文件时&#xff0c;是否遇到弹出”无法执行&#xff0c;因为您没有正确的访问权限“的窗口&#xff1f;遇到这种问题怎么解决呢&#xff1f;这里小编为大家带来了详细的解决方法&#xff0c;一起来看看吧&#xff01; 解决方法&#xff1a; 方法一…

matlab 间接平差法拟合二维圆

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫自重。 一、算法原理 圆的方程为: ( x - x 0 )

怎么为Web服务器配置虚拟主机?【步骤演示】

在安装了Web服务器Apache后&#xff0c;为了更好地使用Apache&#xff0c;还需要学习如何对Apache进行配置。在项目开发中&#xff0c;经常需要配置虚拟主机和访问权限&#xff0c;下面对Web服务器的配置进行详细讲解。 配置虚拟主机 在默认情况下&#xff0c;Apache只有Chwe…

ssh服务登录原理与配置

文章目录 前言一、基于口令的认证&#xff08;用户名密码&#xff09;二、基于公钥的认证&#xff08;免密登录&#xff09;三、禁止用户登录和修改端口四、免密登录具体操作 前言 非对称加密是在认证用户连接的时候使用的&#xff0c;对称加密是在用户连接之后开始传输数据的…

高端知识竞赛中用到的软件和硬件有哪些

现在单位搞知识竞赛&#xff0c;已不满足于用PPT放题&#xff0c;找几个简单的抢答器、计分牌弄一下了&#xff0c;而是对现场效果和科技感要求更高了。大屏要分主屏侧屏&#xff0c;显示内容要求丰富炫酷&#xff1b;选手和评委也要用到平板等设备&#xff1b;计分要大气些&am…

【JavaEE】多线程案例-单例模式

文章目录 1. 前言2. 什么是单例模式3. 如何实现单例模式3.1 饿汉模式3.2 懒汉模式4. 解决单例模式中遇到的线程安全问题4.1 加锁4.2 加上一个判断解决频繁加锁问题4.2 解决因指令重排序造成的线程不安全问题 1. 前言 单例模式是我们面试中最常考到的设计模式。什么是设计模式呢…

准备篇(三)Python 爬虫第三方库

第三方库无法将 "pip" 识别ModuleNotFoundError: No module named pip install 安装路径相关问题requests 库和 BeautifulSoup 库requests 库BeautifulSoup 库第三方库 Python 的 标准库 中提供了许多有用的模块和功能,如字符串处理、网络通信、多线程等,但它们并…

(2023 最新版)IntelliJ IDEA 下载安装及配置教程

IntelliJ IDEA下载安装教程&#xff08;图解&#xff09; IntelliJ IDEA 简称 IDEA&#xff0c;由 JetBrains 公司开发&#xff0c;是 Java 编程语言开发的集成环境&#xff0c;具有美观&#xff0c;高效等众多特点。在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本…

ES6 特性

一、ES6 1.1 ES6 概念 1.1.1 什么是 ES ES 全称 EcmaScript 是脚本语言的规范JavaScript 是 EcmaScript 的一种实现ES 新特性就是指 JavaScript 的新特性 1.1.2 为什么要使用 ES 语法简单&#xff0c;功能丰富框架开发应用前端开发职位要求 1.1.3 为什么要学习 ES6 ES6 …

消息中间件介绍

消息中间件利用高效可靠的消息传递机制进行异步的数据传输&#xff0c;并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制&#xff0c;可以在分布式环境下扩展进程间的通信。ActiveMQ、RabbitMQ、ZeroMQ 消息中间件的作用 解耦&#xff1a; 冗余〈存储…

在UOS/Deepin下安装 Python 3.11.5 图文详解

01 先把操作系统更新一下 在开始菜单中&#xff0c;找到“终端”&#xff0c;点击启动&#xff0c;并依次输入以下两条命令即可&#xff1a; sudo apt update sudo apt upgrade 特别说明&#xff1a;Uos/Deepin 系统&#xff0c;要先进入“开发者模式”才行。“ 设置 — 通用…

VB求平均值

VB求平均值 Private Function pj(x() As Integer) As SingleDim m%, n%, i%, s%m LBound(x): n UBound(x)For i m To ns s x(i)Next ipj s / (n - m 1) End Function Private Sub Command1_Click()Dim a%(1 To 10), i%, aver!For i 1 To 10a(i) Int(Rnd() * 10) 随机…

Docsify介绍—md文件直接生成网页的工具

Markdown是一种轻量级标记语言&#xff0c;它使用易读易写的纯文本格式&#xff0c;用于编写文档&#xff0c;如README&#xff0c;wiki&#xff0c;博客文章等。Markdown语言最初由约翰格鲁伯&#xff08;John Gruber&#xff09;和亚伦斯沃茨&#xff08;Aaron Swartz&#x…

什么是HTTP状态码?常见的HTTP状态码有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是HTTP状态码&#xff1f;⭐ 1xx - 信息性状态码⭐ 2xx - 成功状态码⭐ 3xx - 重定向状态码⭐ 4xx - 客户端错误状态码⭐ 5xx - 服务器错误状态码⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前…

华为云云耀云服务器L实例评测|用PHP从数据库到后端到前端完整实现一个中秋节祝福语项目

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

大数据知识点之大数据5V特征

大数据的特征可以浓缩为五个英文单词&#xff0c;Volume(大量&#xff09;、Variety(多样性&#xff09;、Velocity(速度&#xff09;、Value(价值&#xff09;、Veracity(准确性&#xff09;。因为是5个特征都是以“V”开头的英文单词&#xff0c;又叫大数据5V特征。 概述&…