2023/08/10

news2024/12/23 14:06:47

文章目录

    • 一、计算属性传参
    • 二、小程序、h5跳转其他平台授权
    • 三、封装popup弹窗
    • 四、实现保存海报
    • 五、下载图片和复制分享链接

一、计算属性传参

计算属性的值往往通过一个回调函数返回,但是这个回调函数是无法传递参数的,要想实现计算属性传参可以通过闭包的方式实现

下面我分别使用vue2和vue3实现给计算属性传入参数type,type=5时返回’抖音’=4时返回’快手’

Vue3版:

<template>
    <div>{{ platName(num) }}</div>
    <button @click="num++">++</button>
</template>
  
<script setup>
import { computed, ref } from 'vue'
let num = ref(4)
const platName = computed(() => {
    return function (type) {
        let name = ''
        switch (type) {
            case 5:
                name = '抖音'
                break
            case 4:
                name = '快手'
                break
            default:
                break
        }
        return name
    }
})
</script>
  
<style lang="scss" scoped>
</style>

Vue2版:

<template>
    <div>
        <div>{{platName(num)}}</div>
        <button @click="num++">++</button>
    </div>
</template>
  
<script>
export default {
    data() {
        return {
            num: 4
        }
    },
    computed: {
        platName: () => {
            return function (type) {
                let name = ''
                switch (type) {
                    case 4:
                        name = '快手'
                        break
                    case 5:
                        name = '抖音'
                        break
                    default:
                        break
                }
                return name
            }
        }
    }
}
</script>

<style>
</style>

都能得到如下效果
在这里插入图片描述
可以看到计算属性成功传递参数,并且返回的结果也是响应式的。

二、小程序、h5跳转其他平台授权

实现小程序、h5跳转其他平台授权的思路是:【抖音举例】
往往需要调用一个跳转其他平台的接口,此接口传递的参数往往包含一个授权完成的返回地址,接口调用成功后会返回一个其他平台授权的页面地址,使用window.location.href=页面地址实现强制跳转授权页,在授权页授权完成后自动返回通过参数传递的授权完成返回地址,这样就完成授权了。

三、封装popup弹窗

封装popup弹窗时可以使用具名插槽如
<slot name="content"></slot>来实现灵活展示弹窗内容,
使用<template #content>插入内容</template>插入弹窗中的内容。

四、实现保存海报

保存海报要依靠html2canvas库,写法固定

import html2canvas from 'html2canvas'
//绘制图片
drawImage() {
    if (this.poster == '') {  // 如果海报链接为空
        this.$loading()
        let dom = document.querySelector('#poster')  // 获取要下载的元素
        html2canvas(dom, {  // 利用html2canvas库生成图片链接
            width: dom.clientWidth, //dom 原始宽度
            height: 554,
            scrollY: 0,
            scrollX: 0,
            useCORS: true
        }).then((canvas) => {
            this.$hideLoading()
            //成功后调用返回canvas.toDataURL返回图片的imageData
            this.poster = canvas.toDataURL('image/png', 1)
            this.downloadFile(this.poster)  // 根据链接下载图片
        })
    } else {
        this.downloadFile(this.poster)
    }
},
downloadFile(url) {
    // h5 a标签创建
    var link = document.createElement('a');
    link.href = url;
    link.download = '分享海报.png';
    link.click();
}

五、下载图片和复制分享链接

下载图片和复制分享链接实现的思路是一个的,都是用js创建一个元素,然后操作这个元素实现功能。

下载图片:

downloadFile(url) {
    // h5 a标签创建
    var link = document.createElement('a');
    link.href = url;  // 配置下载链接
    link.download = '分享海报.png';  // 配置下载文件名
    link.click();  // 触发下载
}

复制链接

// 复制分享链接
copyUrl(url) {
    let oinput = document.createElement('input') // 创建input标签
    oinput.value = url // 将链接赋给input
    document.body.appendChild(oinput);  // 渲染input标签
    oinput.select();  // 选择input标签
    document.execCommand('copy');  // 调用copy
    uni.showToast({
        title: '复制成功',
        duration: 500
    });
    document.body.removeChild(oinput);  // 移除input标签
},

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

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

相关文章

Python爬虫(十)_正则表达式

什么是正则表达式 正则表达式&#xff0c;又称规则表达式&#xff0c;通常被用来检索、替换那些符合某个模式&#xff08;规则&#xff09;的文本。 正则表达式是对字符串操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成…

Prometheus技术文档-基本使用-配置文件全解!!!!!

简介&#xff1a; Prometheus是一个开源的系统监控和告警系统&#xff0c;由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种时间序列数据&#xff0c;比如系统性能、网络延迟、应用程序错误等。Prometheus通过采集监控数据并存储在时间序列数据库中&#xff0c;…

eNSP:双向重定向和路由策略练习

实验要求&#xff1a; 拓扑图&#xff1a; IP、路由器 r1: <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/0]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 14.1.1.1 24 [r1-GigabitEthernet0/0/1]…

Linux下安装nginx (tar解压版安装)

Linux下安装nginx (tar安装) 1、下载nginx 官方下载地址https://nginx.org/en/download.html 在这里插入图片描述 2.解压 解压‘nginx-1.16.1.tar.gz’到指定目录&#xff08;/usr/local/myWorkSpace&#xff09;并且重命名 命令&#xff1a; tar -xvf nginx-1.16.1.tar.gz …

畜牧虚拟仿真 | 鱼授精过程VR模拟演练系统

随着科技的发展&#xff0c;虚拟现实(VR)技术逐渐渗透到各个领域&#xff0c;为人们提供了更加真实、直观的体验。在动物养殖教育领域&#xff0c;鱼授精过程VR模拟演练系统正成为一种新的教学手段&#xff0c;它能够帮助人们更好地理解和掌握鱼授精的操作技巧&#xff0c;从而…

C# OpenCvSharp读取rtsp流录制mp4

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using Syste…

【雕爷学编程】Arduino动手做(12)---霍尔磁场传感器模块2

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

Linux: network: tools: tcpdump,抓取vlan包需要注意的事情;不然会出现LLC协议

https://bugzilla.redhat.com/show_bug.cgi?id498981#c4 https://serverfault.com/questions/544651/vlan-tags-not-shown-in-packet-capture-linux-via-tcpdump 如果不加-e参数&#xff0c;抓取不到 vlan信息&#xff0c;会导致wireshark解析出现问题。因为&#xff0c;抓到…

调整项目符号/项目编号与文本的距离

百度知道多年前的答案是调整标尺&#xff0c;我的PPT里没有标尺 调节悬挂缩进即可

STM32HAL库:简化STM32微控制器开发

简介&#xff1a;在微控制器开发领域&#xff0c;效率、易用性和兼容性至关重要。STMicroelectronics通过其STM32HAL库为这些问题提供了解决方案&#xff0c;该库是专门为STM32微控制器系列设计的软件开发库。本文旨在探索STM32HAL库的特性、优势和应用程序&#xff0c;并提供使…

【看表情包学Linux】初识文件描述符 | 虚拟文件系统 (VFS) 初探 | 系统传递标记位 | O_TRUNC | O_APPEND

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​ &#x1f4ad; 写在前面&#xff1a;通过上一章节的讲解&#xff0c;想必大家已对文件系统基本的接口有一个简单的了解&#xff0c;本章我们将继续深入讲解&#xff0c;继续学习系统传递标志位&…

跨境商城服务平台搭建与开发(金融服务+税务管理)

随着全球电子商务的快速发展&#xff0c;跨境贸易已经成为一种新的商业趋势。在这个背景下&#xff0c;搭建一个跨境商城服务平台&#xff0c;提供金融服务、税务管理等一系列服务&#xff0c;可以极大地促进跨境贸易的发展。本文将详细阐述跨境商城服务平台搭建与开发的步骤。…

在单元测试中使用Jest模拟VS Code extension API

对VS Code extension进行单元测试时通常会遇到一个问题&#xff0c;代码中所使用的VS Code编辑器的功能都依赖于vscode库&#xff0c;但是我们在单元测试中并没有添加对vscode库的依赖&#xff0c;所以导致运行单元测试时出错。由于vscode库是作为第三方依赖被引入到我们的VS C…

SpringBoot集成Redis及Redis使用方法

目录 应用背景 Redis简介 更新问题 一&#xff1a;环境配置 1.1: 在pom.xml文件中添加依赖 1.2&#xff1a;配置SpringBoot核心配置文件application.properties 二&#xff1a;在Config文件夹中创建RedisConfig配置文件类 2.1&#xff1a;RedisTemplate中的几个角色&am…

2023最新版本Activiti7系列-多实例详解

工作流多实例 1.多实例介绍 多实例活动是为业务流程中的某个步骤定义重复的一种方式。在编程概念中&#xff0c;多实例与 for each 结构相匹配&#xff1a;它允许对给定集合中的每个项目按顺序或并行地执行某个步骤或甚至一个完整的子流程。 多实例是一个有额外属性&#xff0…

【Java并发】如何进行死锁诊断?

文章目录 1.什么是死锁2.死锁怎么产生的3.如何进行死锁诊断&#xff1f;3.1 通过命令查看3.2 jconsole可视化工具3.2 VisualVM&#xff1a;故障处理工具 1.什么是死锁 死锁&#xff08;Deadlock&#xff09;是指两个或多个进程&#xff08;线程&#xff09;在执行过程中&#…

spss什么是描述性分析,以及如何去处理。

描述性分析是数据分析的第一步&#xff0c;是了解和认识数据基本特征和结构的方法&#xff0c;只有在完成了描述性统计分析&#xff0c;充分的了解和认识数据特征后&#xff0c;才能更好地开展后续更复杂的数据分析。因此&#xff0c;描述性分析是开展数据分析过程中最基础且必…

怎么在python里面安装库,如何在python中安装库

大家好&#xff0c;给大家分享一下python外部库安装后放在哪里&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; Python成为最流行的语言之一&#xff0c;除了它的简单易学和语法简单外&#xff0c;还有一个重要的原因是Python有非常强大的第…

PMP认证考试有何变化?该如何备考

截至2023年1月31日&#xff0c;全球有超130万PMP有效持证人士&#xff0c;其中中国有效持证人数已超过了43万人。持有PMP也已成为企业衡量项目经理人专业度的重要指标之一。 PMP考证人数的快速发展&#xff0c;与其考试大纲和知识体系的科学性和实战性密不可分。PMP考纲和教材…

【雕爷学编程】Arduino动手做(201)---行空板硬件控制之LED与按键

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…