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 目录下会增加…

二叉树实现的相关函数

1.二叉树的创建 BTNode* BinaryTreeCreate(BTDataType* a, int n, int* pi) { if (n0||a[*pi] #){ (*pi);return NULL;}BTNode* root (BTNode*)malloc(sizeof(BTNode));root->_data a[(*pi)];root->_left BinaryTreeCreate(a, --n, pi);root->_right Binary…

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

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

ip地址怎么改网速快

在当今高度依赖互联网的时代&#xff0c;快速稳定的网络连接对于人们的生活和工作至关重要。然而&#xff0c;有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度&#xff0c;但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…

Apache Spark 在爱奇艺的应用实践

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

Mac node nvm 切换版本,指定版本

一、Homebrew自动安装 // Homebrew安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" // Homebrew卸载 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)&quo…

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

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

matlab 间接平差法拟合二维圆

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

PG数据恢复must be member of role “xxxx“

背景&#xff1a;有一份数据库备份文件&#xff0c;sql语句中包含了drop语句。postgresql数据中有一个模式&#xff1a;test_schema&#xff0c;owner是test_schema_onwer。有另外一个用户test_username2。test_username2具有test_schema的所有权限。 test_username2才是操作te…

GO学习之 远程过程调用(RPC)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

SqlBulkCopy - 批量写入数据库

SqlBulkCopy 是 ADO.NET 中的一种类&#xff0c;它提供了高性能的批量数据插入功能。SqlBulkCopy 类位于 System.Data.SqlClient 命名空间中&#xff0c;并且适用于使用 SQL Server 数据库。 ADO.NET 是 Microsoft .NET Framework 的一部分&#xff0c;提供了与数据存储的连接…

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

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

Java手写双向广度优先和双向广度优先应用拓展案例

Java手写双向广度优先和双向广度优先应用拓展案例 1. 算法思维 思维如下&#xff1a; 双向广度优先搜索算法 (Bidirectional Breadth-First Search)1. 初始化起始节点和目标节点的队列和访问集合 2. 初始化起始节点和目标节点的距离为0 3. 初始化起始节点和目标节点的父节点…

ssh服务登录原理与配置

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

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

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

ES6(三)

文章目录 Promise概念作用回调地狱Promise使用对象的状态Promise.allPromise.race Generator 函数概念基本语法异步流程 Class语法类的写法getter与setter静态属性和静态方法继承模块化 Promise 概念 Promise 是异步编程的一种解决方案&#xff0c;比传统的解决方案回调函数,…

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

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

苹果电脑 m1 apple silican docker 安装 redis 6.2

安装环境&#xff1a; 苹果电脑&#xff0c;m1, apple silican, 系统版本13.5.2&#xff0c;32G内存 docker版本&#xff1a;4.15.0 redis版本&#xff1a;6.2&#xff0c;arm 64位 (https://hub.docker.com/) redis.conf 下载地址&#xff1a;https://redis.io/docs/manag…

JS+jQuery常用方法笔记

1、如何为一个按钮添加点击事件&#xff1f; 例&#xff1a;按钮一&#xff1a; <a class"layui-btn btnOne">按钮一</a>为其添加点击事件&#xff1a;方法一&#xff1a; $("#btnOne").click(function (e) {alert(111); });方法二&#xff…