Vue2渐进式框架(三)

Vue初始 非单页面组件 -> 没有独立文件的组件 暂时不讲(作为补充的时候在讲解)单页面组件 -> xxx.vue单页面组件 包括三部分 (html [标签>] css [vue2规定 组件只能有一个 根标签标签都可以在vue中完美显示lang 是设计其语言的 less scss css stylus 看你css预处理器选择的是啥scoped是局部的意思 使用这个标识 在标签上会添加一个自定义属性 用来当做唯一标识 data-v-xxxxx局部生效1. 创建组件。 阅读详情

第九节

9.1组件命名

当注册组件(或者prop)时,可以使用kabab-case(短横线分割命名)、camelCase(驼峰式命名)或PascalCase(单词首字母大写命令)

9.2组件中的data

组件中的data选项必须是一个函数,返回一个数据对象。为什么需要是一个函数,而不可以像Vue实例是一个对象呢,首先因为组件会被多次复用,而对象是引用数据类型,如果组件数据使用对象的话,那么组件所有的复用都将共享这些数据。

9.3template的使用

直接写在选项里的模板,写在template标签里的模板、写在script标签里的模板
在这里插入图片描述

9.4组件之间的通讯

组件之间的通讯又叫做组件的传值,父子组件的通讯和非父子组件的通讯。

9.4.1如何进行父子组件间的通讯呢?

在这里插入图片描述
(一)通过props向子组件传递数据;

在组件中,使用选项props来声明需要从父级接收到的数据。

props的值有两种方式:
①字符串数组,数组中的字符串就是传递时的名称;
②对象,对象可以设置传递时的类型,也可以设置默认值等。

<div id="app">
    <!-- 静态传值(movies) 动态传值(des)
         父组件在使用子组件的时候,可以将父组件的数据绑定到使用子组件的标签上
         子组件在选项中添加一个props属性来接收数据
    -->
    <my-son movies="唐人街探案3,你好李焕英" :des="msg"></my-son>
</div>
<!--组件模板 分离 -->
<template id="son">
    <div style="border: 1px solid red;">
        <h2>这是子组件</h2>
       <h3>电影名称:{{movies}}</h3>
       <h4>{{des}}</h4>
    </div>
</template>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
<script type="text/javascript">
    let MySon = {
        template:'#son',
        //子组件定义props接收数据并使用
        //数组中存放的是自定义属性的名称
        props:['movies','des']//数组写法
    }
    new Vue({
        el:'#app',
        data: {
            msg:'这是父组件中的msg'
        },
        components: {
            //注册子组件
            MySon
        }
    })
</script>

在这里插入图片描述

(二)通过事件向父组件发送消息

第十节

10.1propsData[使用率不高,因为有vuex]

propsData不是和属性有关,他用在全局扩展时进行传递数据
类型: {[key:string]:any}
限制: 只用于new创建的实例中
详细: 创建实例时候传递props,主要作用是方便测试,他的作用就是单页面应用中保持状态和数,就是在本局扩展里面传递参数propsData

在这里插入图片描述

10.2ref和$refs

ref: 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的$refs对象是哪个。如果在普通的DOM元素上使用,引用指向的就是DOM元素;如果用在子组件上,引用就指向组件;
$refs: 一个对象,持有注册过ref attribute的所有DOM元素和组件实例。

<body>
		<div id="app">
			<!-- 在p标签上,加上了ref特性,并赋予了id -->
			<p ref="mp" id="aa">这是p标签</p>
			<button type="button" @click="get">获取ref</button>
		</div>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				el:'#app',
				methods:{
					get(){
						// 通过this.$refs获取到的是 绑定的元素
						console.log(this.$refs.mp)
					    var a=document.getElementById('aa')
					    console.log(a)
					}
				}
			})
		</script>
	</body>

第十一节

11.1插槽

11.2组件的插槽

组件的插槽也是为了让我们封装的组件更加具有扩展性。让使用者可以决定组件内部的一些内容到底展示什么。

11.3插槽的基本使用

    1、<slot></slot>
    2、插槽的默认值<slot><button type="button"></button></slot>
    3、如果有多个值,同时放入到组件中进行替换,它会将放入的值作为元素一起替换

11.4插槽的类型

1. 默认插槽(匿名插槽)	2. 具名插槽 name	3. 作用域插槽 v-slot

11.5插槽的使用

(一)默认插槽(匿名插槽)
直接在组件中使用slot进行占位,当我们使用该组件时,在组件标签内写入需要展示的内容即可
(二)具名插槽 name

具名插槽,给slot加上name属性 <slot name="插槽名称">,
使用的时候
<span style="color: coral;" slot="uname">友谊</span>

(三)作用域插槽

  <slot :abc="pLanguages">
  	<ul v-for="item in pLanguages">
  		<li>{{item}}</li>
  	</ul>
  </slot>

用法: 将abc变量名,作为slot元素的一个属性绑定上去,传入值,在组件使用时,通过v-slot="数据别名"的方式使用

<template v-slot="bb">
	<!-- {{bb.abc}}- -->
	{{bb.abc.join(' - ')}}
</template>
注意:在使用作用域插槽的时候,必须使用tmeplate

插槽实战案例

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<!-- 引用字体图标库 -->
		<link rel="stylesheet" type="text/css" href="./font/iconfont.css"/>
		<style type="text/css">
			.myflex{border: 1px solid #ccc;display: flex;margin-top:10px ;}
			.icon-fanhui{font-size: 20px;}
			ul>li{list-style: none;}
			/* 设置组件三部分内容各占多少 */
			.m-l{width: 15%; height: 50px;}
			.m-c{width: 70%; height: 50px;}
			.m-r{width: 15%; height: 50px;}
			.mc{display: flex;justify-content: space-around;align-items: center;			}
			.myli{width: 40px;position: relative;left: -20px;text-align: center;line-height: 2;}			
			.active{border-bottom:3px solid rgb(253,122,122) ;color: red;font-weight: 600;}
			.myinput{background-color: #eee;border: none;outline: none;width: 80%;}
			.product{display: flex;align-items: center;width: 100%;height: 35px;background-color: #eee;border-radius: 20px;padding: 0 20px;}
			#end{background-color: red;}
			#over-three{background-color: red;border:none;font-size: 16px;text-align: center;line-height:40px;color:#fff;outline:none;}
		</style>
	</head>
	<body>
		<div id="app">
			<!-- 使用组件 -->
			<nav-bar></nav-bar>
			<!-- 商品 -->
			<nav-bar>
				<ul slot="center" class="mc" style="width: 100%;">
					<li 
					class="myli" :class="{active:current==index}"
					@click="current=index"
					v-for="(val,index) in arr">
						{{val}}
					</li>
				</ul>
			</nav-bar>			
			<!-- 带有搜索框 -->
			<nav-bar :ishow="false">
			   <div slot="center" class="product">
				   <i class="iconfont icon-fangdajing"></i>
				   <input type="text" placeholder="蚕丝被" class="myinput" />
			   </div>
			</nav-bar>
			<!-- 不有的搜索框 -->
			<nav-bar id="end">
				<div slot="center" class="product">
					<i class="iconfont icon-fangdajing"></i>
					<input type="text" placeholder="蚕丝被" class="myinput" />					
				</div>
				<div slot="right">
					<button id="over-three">登录</button>
				</div>
			 </nav-bar>
		</div>		
		<!-- 组件模板 -->
		<template id="mynav">
			<div class="myflex">
				<!-- <h1>这是navbar组件</h1> -->				
				<!-- 左侧 -->
				<div class="m-l mc">
					<slot name="left">
						<i class="iconfont icon-fanhui"></i>
					</slot>
				</div>
				<!-- 中间-->
				<div class="m-c mc">
					<slot name="center">
						<span>购物车</span>
					</slot>			
				</div>
				<!-- 右侧 -->
				<div class="m-r mc" v-if="ishow">
					<slot name="right">
						<i class="iconfont icon-gengduo1"></i>
					</slot>
				</div>
			</div>
		</template>		
		<!-- 引入vuejs库 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
		<script type="text/javascript">			
	    // 注册全局组件
		Vue.component("nav-bar",{//组件选项对象
			template:'#mynav',
			props:{
				ishow:{
					default:true
				}
			}			
		})			
		// 创建Vue实例
		 new Vue({
			 el:'#app',
			 data:{
				 arr:["商品","评价","详情","推荐"],
				 current:0
			 },
		 })
		</script>
	</body>
</html>

父级模板里的所有内容都是在父级作用域中编译的;子级模板里的所有内容都是在子作用域中编译的。

11.6父组件想要访问子组件的数据,如何做?

1、子组件
<template>
  <div>
    <h1>hey,我是组件Child的标题</h1>
    <slot v-bind:childData="childUser"></slot>
  </div>
</template>
2、父组件
<div>
  <h1>hey,我是父组件Father的标题</h1>
  <Child>
    <template v-slot:default="slotProps">
      {{ slotProps.childData.Name}}
      {{ slotProps.childData.Age}}
    </template>
  </Child>
</div>

上一节: Vue2渐进式框架(二)
下一节: Vue2渐进式框架(四)脚手架/项目创建/Vant/Element框架使用

【零基础入门VUE】VueJS - 概述 不会对 DOM 进行更改,而是创建 DOM 的副本,该副本以 JavaScript 数据结构的形式存在。最终的更改会更新到真实的 DOM,用户将看到它的变化。随后,对两个 JavaScript 对象进行比较,并在真实 DOM 中更新最终的更改。Ember 添加了 glimmer 渲染引擎,旨在提高重新渲染性能,这与使用虚拟 DOM 的 VueJS 和 React 是类似的概念。随着时间的推移,淘汰赛的发展速度已经放缓。VueJS 继承了 Angular 和 React 的优点,并构建了一个强大的库。 阅读详情

相关推荐

对Vuejs框架“渐进式”的理解

Vue渐进式-先使用Vue的核心库,再根据你的需要的功能再去逐渐增加加相应的插件。 转载自网上的一些答案,文末标注了出处。 在我看来,渐进式代表的含义是:主张最少。 每个框架都不可避免的会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,他的强势程度会影响在业务开发中的使用方式。 比如Angular,他两个版本都是强主张的,如果你用它,必须接受一下东西: 必须使用它的模块机制 必须使用他的依赖注入 必须使用它的特殊形式定义组件(这一点每个视图框架都会,难以避免) 所以Ang

skysys的研究小屋 2293

什么是渐进式框架

渐进式框架(Progressive Framework)是一种软件开发框架的概念,它强调构建应用程序的方法是逐步增强(progressive enhancement)的,允许开发者根据项目的需求和复杂度选择性地使用框架提供的不同功能和特性。总之,渐进式框架为开发者提供了更大的灵活性和控制权,让他们根据项目的需求进行选择和使用不同的功能,而无需承担过多的不必要复杂性。开发者可以首先掌握框架的基本部分,然后逐渐深入学习更高级的功能。渐进式框架允许开发者只引入必要的功能,从而减少应用程序的负担,提高性能。

每天都想吃好吃的 2196

【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题

测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到

xx842678的博客 1656

渐进式框架Vue

渐进式框架Vue 1. 什么是vue? 类似于一套构建用户界面的渐进式框架。与其他重量级框架不同,Vue采用自底向上增量开发设计。 渐进式:就是阶梯式向前,vue是轻量级的,它有很多独立的功能或库,我们会根据我们的项目来选用vue的一些功能,我们开发项目时,只用到vue的声明式渲染,我就只用vue的声明渲染,而我们要用它的组件系统,我们可以使用它的组件系统。 Vue的渐进式表现: 声明式渲染----组件系统-----客户端路由------大数据装填管理-------构建工具 2. vue中两个核心点 响应

weixin_46692492的博客 2102

树莓派4B:控制步进电机

文章目录准备阶段接线阶段树莓派程序 准备阶段 准备以下物品,淘宝都可以买到: 57步进电机 电源开关(220v转24v,3A,72W) 步进电机驱动器 电源线 电线 杜邦线 树莓派4B一套 具体型号如下: 接线阶段 整体:接线效果如下图 电源开关起220v转24v作用,很好接线,输出24v接入步进电机驱动器 步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说...

学习路上的鸭子的博客 1万+

ESP32驱动TFT屏幕实战:LVGL与TFT_eSPI完美结合

本文详细介绍了如何在ESP32上结合TFT_eSPI驱动库与LVGL图形库,实现高效、流畅的嵌入式GUI开发。内容涵盖硬件连接、软件环境搭建、库配置、LVGL移植、界面创建及性能优化等全流程实战指南,帮助开发者快速构建低成本、高性能的交互式显示应用。

weixin_29206669的博客 200

什么是渐进式框架?作用是什么?如何使用?

这样的设计使得开发者能够根据项目的实际需求和团队的技术能力,逐步引入和应用框架的不同功能,而不需要一次性接受整个框架的复杂性和学习成本。这样,可以根据项目的具体情况选择性地配置框架,避免引入不必要的复杂性和额外的资源消耗。同时,还可以根据需求进行定制化,并根据项目的发展需要来扩展框架的功能。而渐进式框架通过将整体框架划分为多个可选的模块或特性,使得开发者可以逐步学习和应用不同的功能,降低了学习和掌握框架的难度。在使用传统框架时,开发者需要按照框架的要求和规范进行开发,无法选择性地引入和使用框架的不同部分。

dxn16638400024的博客 1643

linux驱动由浅入深系列:基于高通平台分析触摸屏(TP)、虚拟按键驱动

触摸屏的触摸板(touch panel简称TP)驱动的基本架构和普通按键驱动基本一致,可以参考文章:linux驱动由浅入深系列:输入子系统之二(编写一个gpio_key驱动)。只是其功能稍稍复杂些,配置也多些,下面一起来看一下。 TP包括 触摸屏、虚拟按键、虚拟按键背光灯 TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synapt

Radia的专栏 4768

Vue框架中,何为渐进式框架?

我的理解是:vue框架提供了不同层次的特性与功能,在使用过程中丰俭由人,既可以只使用核心特性,又可以使用高级特性及第三方功能。 核心: 数据驱动(视图的内容随着数据的改变而改变) 组件化(可以增加代码的复用性,可维护) 无论再怎么灵活,Vue 的核心知识在所有这些用例中都是通用的。 即使你现在只是一个初学者,随着你的不断成长,到未来有能力实现更复杂的项目时,这一路上获得的知识依然会适用。 ...

Shinebone的博客 700

道通无人机信号分析

本文分析了道通无人机及其遥控器的EIRP参数(表1-2),发现不同地区的功率标准存在差异。针对5230MHz图传信号,观测到四帧连续信号结构类似LORA分包传输。脉冲分析(表3)显示固定3.9ms脉宽和1.1ms间隔。频谱异常表现为非矩形窗特征,经分析系多径效应引起的频率选择性衰落所致——不同路径传播导致特定频率出现相长/相消干涉,形成波峰波谷的起伏频谱特征。这种现象与无线信道的多径时延、衰减差异直接相关。

jiaotinglang2580的博客 487

25、格式化字符串攻击全解析

本文深入解析了格式化字符串攻击的原理与利用方式,涵盖缓冲区溢出与格式化字符串漏洞的区别,详细介绍了printf函数的工作机制、常见格式化说明符及其安全隐患。文章分析了三类典型编程错误导致的漏洞,并展示了如何通过恶意格式化字符串实现拒绝服务、内存读取和写入攻击。同时,提供了有效的防御措施,包括输入验证、使用安全函数、避免直接使用用户输入作为格式化字符串以及启用编译器安全选项,帮助开发者防范此类高危漏洞。

beer8的博客 83

渐进式框架的理解

简单快速的理解什么是渐进式框架的理解 渐进式代表的含义是:主张最少。 每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。 比如说,Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西: 必须使用它的模块机制- 必须使用它的依赖注入- 必须使用它的特殊形式定义组件(这一点每个视图框架都有,难以避免) 所以Angular是带有比较强的排它性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成

一夜枫林 1万+

银河麒麟高级服务器V11操作系统安装部署zabbix监控平台的实操保姆级教程

本文详细介绍了在《银河麒麟高级服务器V11上安部署Zabbix监控系统的全过程》涵盖了zabbix监控系统涉及到的所有软件安装、参数优化、服务启动验证及防火墙配置等一系列实操。其中关于安装过程报错undefined symbol: usmAES256CiscoPrivProtocol;ares_reinit等依赖库问题进行了详细记录与分析解决;还提供了Web前端中文显示修复方案和Admin密码修改方法。实现监控平台的100%部署上线,实现对业务系统的实时监控,保证业务的稳定运行。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 531

Vue 渐进式框架,渐进式是什么意思?

Vue.js 作为目前最受欢迎的前端框架之一,其“渐进式”的特性尤为引人注目。那么,Vue 的“渐进式”到底是什么意思?它在实际开发中又能带来哪些优势?渐进式”这个词听起来有点专业,其实意思很简单。它指的是你可以根据项目的需求,逐步地增加 Vue 的使用范围。开发者开始使用Vue时可以只使用熟悉或者想用的功能特性,对于不了解的功能没有强制要求使用,或者说不会因为没有掌握某个特性而不能实现功能需求的,后续对Vue逐渐熟悉后可以逐步使用更加高级的特性。

乐闻世界 1925

制作INCA和CANape通用的A2L

CANape和INCA通用的A2L配置与修改

赞的博客 5962

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Vue | 如何理解Vue是一个渐进式的Javascript框架

Vue.js是一个渐进式的JavaScript框架,‌这意味着开发者可以根据项目的需求逐步引入和使用框架的各种功能,‌同时保持项目的可维护性和可扩展性。‌

青春木鱼的博客 3468

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

关于Vue渐进式框架的理解

前言 打开vue的官网介绍,第一句就是“vue是一套用于构建用户界面的渐进式框架”。对于渐进式的理解

weixin_54187299的博客 4831

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vue的渐进式框架的理解

打开vue的官网介绍,第一句就是“vue是一套用于构建用户界面的渐进式框架”。 “渐进式”这几个字在刚接触vue时并没有很注意到, 使用至今,再次打开官网,这几个放大突兀的字体确实是让人疑惑, 当然,网上Google一下,会有很多资料对于这三个字进行阐述,本文只是一个自己理解和简单记录 1、渐进式 看到“渐进式”这三个字,不免想起当初我刚从熟练用jQuery来开发前端页面, 过渡到后来公司决定统一让前端开发人员准备统一用vue框架进行前端开发的, 那段时间确实有些不适应,以至于我一开始在使用vue框架的.

千里之行,始于足下! 5341

如何理解vue是一个渐进式的框架

Vue的核心的功能,是一个视图模板引擎,但这不是说Vue就不能成为一个框架。如下图所示,这里包含了Vue的所有部件,在声明式渲染(视图模板引擎)的基础上,我们可以通过添加组件 Vue的核心的功能,是一个视图模板引擎,但这不是说Vue就不能成为一个框架。如下图所示,这里包含了Vue的所有部件,在声明式渲染(视图模板引擎)的基础上,我们可以通过添加组件系统、客户端路由、大规模状态管理来构建一个...

qq_31749421的博客 5038

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

ranran0306的博客 9712

Vue.js框架介绍

文章目录一、Angular和React框架二、Vue.js框架介绍三、谈谈Vue.js的优点 Google 的 Angular 、Facebook 的 React和尤雨溪的 Vue,是目前流行的三大主流前端框架。 一、Angular和React框架 1.Angular Angular更适合开发一些大型应用,其强大之处在于可以把静态页面与动态数据绑定起来。该框架拥有良好的项目结构,适合大型项目...

匿名攻城狮 9891

Vue:渐进式JS框架详解

Vue是前端优秀框架,用于构建用户界面的渐进式框架

Joy T的博客 1473

探索 Vue.js:渐进式 JavaScript 框架概述

项目创建完成后,进入项目目录,可以看到以下主要目录和文件:src目录:存放项目的源代码,包括组件、视图、路由配置、状态管理等相关文件。public目录:用于存放静态资源,如图片、图标、HTML 模板文件等。文件:记录项目的依赖信息、脚本命令等。

m0_57836225的博客 1393

Vue 2 中文文档完全指南:从零开始学习渐进式JavaScript框架

🚀 **Vue 2 中文文档**是学习渐进式JavaScript框架的最佳起点!无论你是前端新手还是有经验的开发者,这份完整指南将帮助你快速掌握Vue 2的核心概念和实用技巧。Vue.js作为一款流行的前端框架,以其简洁的API、灵活的组件系统和出色的性能赢得了全球开发者的青睐。 ## 📚 为什么选择Vue 2中文文档? Vue 2中文文档为中文开发者提供了原汁原味的学习体验,消除了语言障

gitblog_00429的博客 1005
上一篇: 银联直连接入支付(测试阶段)-->(正式接入)
下一篇: Mybatis-Plus个人学习总结笔记
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值