【博主推荐】VUE开发常用技术点收集

文章目录

  • 1.系统主题的全局颜色变量申明和使用
  • 2.样式里面导入样式
  • 3.页面返回顶部功能
  • 4.页面实时更新时间功能
  • 5.页面条件判断的几种方式
  • 6.页面v-for使用
  • 7.页面路由跳转的几种方式
  • 8.vue3 js引用的几种方式
  • 9.Vue中引用和使用一个组件
  • 10.页面传参的几种方式
  • VUE系列前端模板源码
  • 其他源码资源分享

【博主推荐】VUE开发常用技术点收集,里面包含了,在VUE开发过程中,遇到的有价值的技术点,都收藏在这篇文章里面了,可以让你快速掌握并运用。如系统主题的全局颜色变量申明和使用;样式里面导入样式;页面返回顶部功能;页面时间功能;页面条件判断的几种方式;页面v-for使用;页面路由跳转的几种方式;vue3 js引用的几种方式;Vue中引用和使用一个组件;页面传参的几种方式

1.系统主题的全局颜色变量申明和使用

第一步:现在主样式表里添加以下代码:main.css文件

:root {--primary-color: #3498db;--secondary-color: #e74c3c;--tertiary-color: #9b59b6;
}

第二步:VUE文件使用全局颜色

<template><view><text class="primary-button">Primary Button</text><text class="secondary-button">Secondary Button</text><text class="tertiary-button">Tertiary Button</text></view>
</template><style>
.primary-button {background-color: var(--primary-color);color: white;
}.secondary-button {background-color: var(--secondary-color);color: white;
}.tertiary-button {background-color: var(--tertiary-color);color: white;
}
</style>

看完这两步,你就知道咋样申明和调用全局样式了

2.样式里面导入样式

样式里面导入样式,代码如下

@import './base.css';html,body,#app {font-family: 华文中宋;width: 100%;height: 100%;margin: 0px;padding: 0px;--swiper-theme-color: #5AA488;--swiper-navigation-color: #5AA488;--swiper-pagination-color: #5AA488;--swiper-pagination-bullet-inactive-color:white;
}

3.页面返回顶部功能

在Vue 3和TypeScript中实现返回顶部的功能,可以创建一个组件,使用window.scrollTo函数来滚动到页面顶部。以下是一个简单的例子:

<template><button @click="scrollToTop">回到顶部</button>
</template><script setup lang="ts">
const scrollToTop = () => {window.scrollTo({top: 0,left: 0,behavior: 'smooth'});
};
</script>

在这个例子中,我们定义了一个名为scrollToTop的函数,当按钮被点击时,这个函数会被调用,并且页面会平滑滚动到顶部。

4.页面实时更新时间功能

在Vue 3和TypeScript中创建一个页面级的时间组件可以通过以下步骤实现:

  • 1.创建一个新的Vue组件。
  • 2.使用ref来创建一个响应式的时间变量。
  • 3.使用onMounted生命周期钩子来在组件挂载时设置初始时间。
  • 4.使用setInterval每秒更新时间。
  • 5.在onUnmounted生命周期钩子中清除定时器,避免内存泄露。

代码如下:

<template><div>{{ currentTime }}</div>
</template><script setup lang="ts">
import {  ref, onMounted, onUnmounted } from 'vue';const currentTime = ref(new Date().toLocaleTimeString());let intervalId: number | null = null;const updateTime = () => {currentTime.value = new Date().toLocaleTimeString();};onMounted(() => {intervalId = window.setInterval(updateTime, 1000);});onUnmounted(() => {if (intervalId) {window.clearInterval(intervalId);}});return {currentTime,};
</script>

5.页面条件判断的几种方式

  • 第一种 当条件满足时候,显示内容1,否则显示内容2
<view v-if="$route.path!== '/login' && $route.path!== '/register'">
内容1
</view>
<view v-else>内容2</view>
  • 第二种 当条件满足时候,使用class为t1,否则使用class为t2
<script setup lang="ts">
import { computed } from 'vue';const condition = true; // 你的条件变量const computedClass = computed(() => {return condition ? 't1' : 't2';
});
</script>
<template><view :class="computedClass">我是xcLeigh</view>
</template>
<style scoped>
.t1{ color:red; }
.t2{ color:blue; }
</style>

6.页面v-for使用

在Vue 3中,v-for指令用于基于源数据多次渲染元素。它需要一个特定的语法,即item in items,其中items是源数据数组,而item是数组中当前元素的别名。

以下是一个简单的例子,展示如何在Vue 3组件中使用v-for:

<template><div><!-- 使用v-for循环渲染items数组中的每一个元素 --><div v-for="(item, index) in items" :key="index">{{ item }}</div></div>
</template>
<script>
import { ref } from 'vue';export default {setup() {// 使用ref创建响应式的数组const items = ref(['xcLeigh1', 'xcLeigh2', 'xcLeigh3']);// 返回响应式引用,以便在模板中使用return {items};}
};
</script>

在这个例子中,items是一个响应式的数组,包含了我们想要渲染的所有项。v-for指令遍历items数组,并为数组中的每个元素创建一个新的div元素。:key属性是必需的,它为每个项提供了一个唯一的键值,这有助于Vue跟踪每个节点的身份,在动态更新时提升性能。

7.页面路由跳转的几种方式

  • 1.使用router-link组件创建链接:
<router-link to="/about">About</router-link>
  • 2.使用router-link组件创建链接:

// 字符串
this.$router.push('home')// 对象
this.$router.push({ path: 'home' })// 带查询参数,变成 /register?plan=private
this.$router.push({ path: 'register', query: { plan: 'private' }})
  • 3.使用router.replace(无历史记录):
this.$router.replace({ path: '/about' })
  • 4.使用router.replace(无历史记录):
// 前进一步
this.$router.go(1)// 后退一步
this.$router.go(-1)
  • 5.使用Vue Router的useRouter和useRoute来访问路由和路由参数:

import { useRouter } from 'vue-router'setup() {const router = useRouter()function goToAbout() {router.push('/about')}return { goToAbout }
}
  • 6.使用
<script setup>
import { useRouter } from 'vue-router'const router = useRouter()function goToHome() {router.push('/home')
}
</script><template><button @click="goToHome">xcLeigh</button>
</template>

8.vue3 js引用的几种方式

  • 1.在
import moduleName from './path/to/your/module.js';// 在这里使用moduleName的函数、变量等
  • 2.在
import { onMounted } from 'vue';
import moduleName from './path/to/your/module.js';export default {setup() {onMounted(() => {// 使用moduleName的函数、变量等});}
};
  • 3.在模板中使用ref引用DOM元素并调用JavaScript函数:
<template><div ref="myDiv">这是一个DIV</div>
</template><script>
import { ref, onMounted } from 'vue';export default {setup() {const myDiv = ref(null);onMounted(() => {// 调用JavaScript函数doSomething(myDiv.value);});return { myDiv };}
};
</script>

确保JavaScript文件是模块化的,这样才能在Vue组件中按需引用。如果是非模块化的脚本,可能需要考虑其他方法,例如使用全局变量或者在Vue的 script 标签中直接引入脚本。

9.Vue中引用和使用一个组件

在Vue 3中,组件的引用方式与Vue 2略有不同。在Vue 3中,可以使用setup函数内的ref来创建响应式引用,或者直接在 script setup 标签中引用组件。

以下是一个简单的例子,展示如何在Vue 3中引用和使用一个组件:

1.创建一个组件 MyComponent.vue:

<template><div>这是一个组件</div>
</template><script>
export default {// 可以定义组件的逻辑
}
</script>

2.在另一个组件中引用并使用这个组件:

<template><div><MyComponent /></div>
</template><script>
import { defineComponent } from 'vue';
import MyComponent from './MyComponent.vue';export default defineComponent({components: {MyComponent}
});
</script>

或者使用 script setup 标签:

<template><div><MyComponent /></div>
</template><script setup>
import MyComponent from './MyComponent.vue';
</script>

script setup 标签中,你可以直接导入组件并在模板中使用,无需显式注册组件。这是Vue 3中推荐的简写方式,可以让代码更加简洁和直观。

10.页面传参的几种方式

在Vue 3中,传递参数可以通过多种方式实现,以下是几种常见的方式:

  • 使用props传递数据到子组件。
  • 使用$emit触发事件并传递参数。
  • 使用v-bind动态绑定属性。
  • 使用provide和inject实现依赖注入。

1.使用props传递数据到子组件:
父组件代码:

<template><ChildComponent :message="parentMessage" />
</template><script>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},setup() {const parentMessage = ref('Hello from parent');return {parentMessage};}
};
</script>

子组件代码:

<template><div>{{ message }}</div>
</template><script>
export default {props: {message: String}
};
</script>

2.使用$emit触发事件并传递参数:
子组件代码:

<template><button @click="sendMessage">Send Message</button>
</template><script>
export default {props: {message: String},methods: {sendMessage() {this.$emit('message-sent', this.message);}}
};
</script>

父组件代码:

<template><ChildComponent :message="parentMessage" @message-sent="handleMessage" />
</template><script>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},setup() {const parentMessage = ref('Hello from parent');const handleMessage = (receivedMessage) => {console.log(receivedMessage);};return {parentMessage,handleMessage};}
};
</script>

3.使用v-bind动态绑定属性:
子组件代码:

<template><div>{{ dynamicProp }}</div>
</template><script>
export default {props: {dynamicProp: String}
};
</script>

父组件代码:

<template><DynamicPropComponent :dynamicProp="dynamicValue" />
</template><script>
import { ref } from 'vue';
import DynamicPropComponent from './DynamicPropComponent.vue';export default {components: {DynamicPropComponent},setup() {const dynamicValue = ref('Dynamic value');return {dynamicValue};}
};
</script>

4.使用provide和inject实现依赖注入:
父组件代码:

<template><ChildComponent />
</template><script>
import { provide } from 'vue';
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},setup() {provide('message', 'Hello from parent');}
};
</script>

子组件代码:

<template><div>{{ message }}</div>
</template><script>
import { inject } from 'vue';export default {setup() {const message = inject('message');return {message};}
};
</script>

        更多VUE知识点讲解和源码,见下面的专栏 VUE系列前端模板源码,里面收集了很多VUE常见的知识点和经常遇到的问题解决方案,还有更多的各行各业的源码,专栏持续更新中,快去 收藏 吧!!!

VUE系列前端模板源码

        本文章是分类专栏下的【VUE实战案例】篇,内置VUE相关的实战案列文章,每篇实战案例都 附带源码,涉及各行各业的网站模板,为大作业毕业设计打造,持续更新中,欢迎大家关注,一起学习交流。

✂ 点击快速进入专栏
在这里插入图片描述


--------------- 业精于勤,荒于嬉 ---------------

请添加图片描述

--------------- 行成于思,毁于随 ---------------

其他源码资源分享

🧡🧡🧡🧡🤍 【百篇源码模板】html5各行各业官网模板源码下载(1)

🧡🧡🧡🧡🤍 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

🧡🧡🧡🤍🤍 【VUE系列】VUE3实现个人网站模板源码

🧡🧡🧡🤍🤍 【HTML源码】HTML5小游戏源码

🧡🧡🧡🧡🤍 【博主推荐】JAVA SSM框架的后台管理系统(附源码)

🧡🧡🧡🧡🤍 【博主推荐】SpringBoot API接口对数据库增删改查,路由,TOKEN,WebSocket完整版(附源码)

🧡🧡🧡🧡🤍 【博主推荐】HTML制作一个美观的个人简介网页(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html好看的个人简历网页版(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html好看的个人主页(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html好看的邀请函(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html好看的音乐播放器(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html好看的拼图小游戏(附源码)

🧡🧡🧡🧡🧡 【博主推荐】html界面绘制SVG图形(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html操作SVG图(附源码)

🧡🧡🧡🧡🤍 【博主推荐】html下拉框树形(附好看的登录界面)

🧡🧡🧡🧡🤍 【博主推荐】HTML5响应式手机WEB(附源码)

🧡🧡🧡🧡🤍 【博主推荐】大数据可视化大屏(源码下载)

🧡🧡🧡🧡🧡 【博主推荐】html引用百度地图定位闪烁弹框树形(附源码)

🧡🧡🧡🧡🤍 【博主推荐】HTML酷炫动画表白求爱界面(附源码)


请添加图片描述


     💞 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/143364015(防止抄袭,原文地址不可删除)

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

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

相关文章

day08(单片机)时钟系统+定时器+PWM

目录 时钟系统定时器PWM 时钟系统 时钟基本概念 时钟源 晶体振荡器&#xff08;Crystal Oscillator&#xff09; RC振荡器&#xff08;Resistor-Capacitor Oscillator&#xff09; ​​​​​​​STM32U5时钟源 HSI(High Speed Internal) HSE(High Speed External) LSI(Low Spe…

linux盘扩容缩容

这里写目录标题 文件格式介绍问题&#xff1a;当根盘满了过后怎么办&#xff1f;解决方式&#xff1a; Xfs文件格式缩容扩容1. 备份2. 卸载home3. 缩容home&#xff08;home盘为xfs文件格式&#xff09;4. 扩容 /5. 恢复home备份 Ext4文件格式缩容扩容1. 备份&#xff08;可选&…

通过DNS服务器架构解释DNS请求过程

在前面的章节,这里,基于PCAP数据包和RFC文档详细介绍了DNS请求和响应的每个字段的含义。但是在现实的网络世界中,DNS请求和响应的数据包是怎么流动的,会经过哪些设备。本文将着重说明一下目前网络空间中DNS请求和响应的流动过程。 当前网络空间中比较常见DNS请求的流程如下…

【GeoJSON在线编辑平台】(2)吸附+删除+挖孔+扩展

前言 在上一篇的基础上继续开发&#xff0c;补充上吸附功能、删除矢量、挖孔功能。 实现 1. 吸附 参考官方案例&#xff1a;Snap Interaction 2. 删除 通过 removeFeature 直接移除选中的要素。 3. 挖孔 首先是引入 Turf.js &#xff0c;然后通过 mask 方法来实现挖孔的…

分组校验在Spring中的应用详解

目录 前言1. 什么是分组校验2. 分组校验的基本原理3. 分组校验的实现步骤3.1 定义分组接口3.2 在校验项中指定分组3.3 校验时指定要校验的分组3.4 默认分组和分组的继承 4. 分组校验的优势和适用场景4.1 优势4.2 适用场景 5. 常见问题与解决方案5.1 校验未生效5.2 无法识别默认…

Qt_day3_信号槽

目录 信号槽 1. 概念 2. 函数原型 3. 连接方式 3.1 自带信号 → 自带槽 3.2 自带信号 → 自定义槽 3.3 自定义信号 4. 信号槽传参 5. 对应关系 5.1 一对多 5.2 多对一 信号槽 1. 概念 之前的程序界面只能看&#xff0c;不能交互&#xff0c;信号槽可以让界面进行人机…

Unity引擎智能座舱解决方案

作为全球领先的 3D 引擎之一&#xff0c;Unity引擎为车载3D HMI提供全栈支持。即为从概念设计到量产部署的整个 HMI 工作流程提供创意咨询、性能调优、项目开发等解决方案&#xff0c;从而为车载信息娱乐系统和智能驾驶座舱打造令人惊叹的交互式体验。 专为中国车企打造的HMI引…

<项目代码>YOLOv8 草莓成熟识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

stm32 踩坑笔记

串口问题&#xff1a; 问题&#xff1a;会改变接收缓冲的下一个字节 串口的初始化如下&#xff0c;位长度选择了9位。因为要奇偶校验&#xff0c;要选择9位。但是接收有用数据只用到1个字节。 问题原因&#xff1a; 所以串口接收时会把下一个数据更改

14、NAT和桥接区别

一、NAT模式 NAT相当于是局域网中的局域网&#xff0c;把192.168.21.1当作外网ip&#xff0c;重新划分了一个网关&#xff08;192.168.33.x&#xff09; 二、桥接模式 网桥只是把网络桥接起来&#xff0c;还是原来的网关&#xff08;192.168.21.x&#xff09;&#xff0c;虚拟机…

养老实训室中,智能化养老服务平台的建设价值与措施

一、引言 随着人口老龄化的加速&#xff0c;对养老服务的需求日益攀升&#xff0c;传统的养老模式已无法满足现代社会的需求。智能化养老服务平台作为一种新兴的养老模式&#xff0c;以其高效、便捷和个性化的服务特点&#xff0c;开始受到社会的广泛关注。本文将深入探讨智能…

Linux:基本开发工具

一&#xff1a;编辑器vim 1.1vim的基本概念 vim其实有多重模式&#xff0c;这里我们主要了解vim的三种模式&#xff0c;分别是命令模式&#xff08;command mode&#xff09;,插入模式(Insert mode)和底行模式(lst line mode) 正常/普通/命令模式(Normal mode) …

【数据分析】如何构建指标体系?

有哪些指标体系搭建模型&#xff1f;五个步骤教你从0开始搭建指标体系 一、企业指标体系搭建存在什么问题 许多企业在搭建数据指标体系时遇到了诸多难题&#xff0c;如问题定位不准确、数据采集不完整、目标不一致、报表无序、指标覆盖不全面以及报表价值未充分利用等。 1、…

ANDROIDWORLD: A Dynamic Benchmarking Environment for Autonomous Agents论文学习

这个任务是基于androidenv的。这个环境之前学过&#xff0c;是一个用来进行强化学习的线上环境。而这篇文章的工作就是要给一些任务加上中间的奖励信号。这种训练环境的优点就是动态&#xff0c;与静态的数据集&#xff08;比如说我自己的工作&#xff09;不同&#xff0c;因此…

【Android】轮播图——Banner

引言 Banner轮播图是一种在网页和移动应用界面设计中常见的元素&#xff0c;主要用于在一个固定的区域内自动或手动切换一系列图片&#xff0c;以展示不同的内容或信息。这个控件在软件当中经常看到&#xff0c;商品促销、热门歌单、头像新闻等等。它不同于ViewPgaer在于无需手…

容器化技术入门:Docker详解

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 容器化技术入门&#xff1a;Docker详解 引言 Doc…

AssertionError: weight model.layers.0.self_attn.q_proj.weight does not exist

通义千问2.5-7B-Instruct-AWQ量化&#xff0c;但在npu上运行报上面错误&#xff0c;奇怪?&#xff1a; Exception:weight model.layers.0.self_attn.q_proj.weight does not exist AssertionError: weight model.layers.0.self_attn.q_proj.weight does not exist https://…

【SSL-RL】自监督强化学习:随机潜在演员评论家 (SLAC)算法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

怎么启动python脚本文件

创建一个简单的python入门代码&#xff0c;以便示范。 存储文件并复制该python文件的存储路径。 使用cd 命令切换工作目录到python文件所在的目录。 输入变量环境中的python路径和python文件的名字。 回车执行后&#xff0c;可完成命令行的python文件运行。

DDei在线设计器V1.2.42版发布

V1.2.42版 新特性&#xff1a; 1.快捷编辑框可以映射到主控件的多个属性上&#xff0c;从而实现快速编辑。 2.跟随图形的支持范围增加&#xff0c;从仅支持线控件到支持所有控件 2.新增控件双击回调函数EVENT_CONTROL_DBL_CLICK&#xff0c;可以用于覆盖默认的快速编辑逻辑…