学习Uni-app开发小程序Day6

今天是学习的第六天,把以前的重新回顾一次,加深记忆 
  • v-for列表循环和复选框展示
    这是vue的学习知识,在组件中使用后v-for,方式有几种,
    v-for=“item in 数据源”
    v-for=“(item , index)in 数据源” :key=“index”
    :key=“item.id”
    这里记录下,在key的时,可以写下标也可以是数据源的id,使用数据源中的id,更为的严谨。例如:
<template>
	<view>
		<view class="box" v-for="(item , index) in 10">for模块-{{index+1}}</view>
		<view v-for="(item,index) in nba" :key="index">
			球星:{{item.name}}--球衣:{{item.num}}
		</view>
	</view>
	===========================
	<view class="out">
		<view class="box" v-for="(item,index) in goods" :key="item.id">
			<checkbox-group @change="getHander">
				<checkbox :value="item.name"  :checked="item.checked" />
				<text class="title">{{item.name}}</text>
				<text class="del" @click="remote(index)">删除</text>
			</checkbox-group>
		</view>
	</view>

</template>

<script setup>
	import {
		ref
	} from 'vue';

	const goods = ref([{
			id: 11,
			name: "小米",
			checked: true
		},
		{
			id: 12,
			name: "华为",
			checked: false
		},
		{
			id: 13,
			name: "苹果",
			checked: false
		},
		{
			id: 14,
			name: "三星",
			checked: false
		}
	]);
	const nba = ref([{
			id: 1,
			name: "乔丹",
			num: 23
		},
		{
			id: 2,
			name: "詹姆斯",
			num: 17
		},
		{
			id: 3,
			name: "科比",
			num: 7
		}
	]);

	function remote(index) {
		goods.value.splice(index, 1);  //这是js中数组去掉某一下标的方法,splice(下标,需要删除几条)
	}
	function getHander(e){
		console.log(e);
	}

</script>

<style lang="scss" scoped>
	.out {
		padding: 10px;

		.box {
			padding: 10px;

			.del {
				color: red;
				margin-left: 30px;
			}
		}
	}
</style>
以上还有使用的checkbox ,也使用了checkbox -gooup,这个本来是想着做一个关联的复选框,最后没做出来,先记录下,后期完善
  • input组件、v-model 、深入:添加一个获取焦点得到一个小图片
    这里学习了input组件的常用属性,在组件中使用v-model的效果,下面是代码
<template>
	<view class="out">
	<!-- 	<input type="text" :value="inpValue" @focus="isActivity=true" @blur="isActivity=false"
	 @input="event= > inpValue=event.detail.value"/> -->
	 <!-- 上面是一般情况下使用input组件的方法,在vue中,使用v-model指令,就可以实现下上面的效果,只用添加v-model,不需要
	 在添加value、 @input了 -->
		<input type="text" v-model="inpValue" @focus="isActivity=true" @blur="isActivity=false"
		@confirm="onConfirm"
		/>
		<image src="../../static/chicken.gif" mode="" class="pic" :class="isActivity ? 'active' : '' "></image>
	</view>
	<view class="">预览:{{inpValue}}</view>
</template>

<script setup>
	import { ref } from 'vue';
	const inpValue=ref("")
	const isActivity=ref(false)
	
	// 在@input中,使用函数获取输入的值,然后赋值给变量中,因为是只有简单的赋值,没其他业务逻辑,
	// 因此也可以是在@input中进行,使用的方法就是:@input="event => inpValue=event.detail.value"
	// 这就简化了代码
	// function oninput(e){
	// 	inpValue.value=e.detail.value;
	// }
	function onConfirm(e){
		console.log(e);
	}
	
</script>

<style lang="scss" scoped>
.out{
	padding: 0 20px;
	margin-top: 40px;
	position: relative;
	input{
		border: 1px solid red;
		height: 40px;
		position: relative;  
		//position 属性用于指定一个元素在文档中的定位方式
		// 定位元素(positioned element)是其计算后位置属性为 relative, absolute, fixed 或 sticky 的一个元素
		// (换句话说,除static以外的任何东西)。
		// 相对定位元素(relatively positioned element)是计算后位置属性为 relative的元素。
		// 绝对定位元素(absolutely positioned element)是计算后位置属性为 absolute 或 fixed 的元素。
		// 粘性定位元素(stickily positioned element)是计算后位置属性为 sticky 的元素。
		z-index: 2;
		//z-index 属性设置定位元素及其后代元素或 flex 项目的 Z 轴顺序。z-index 较大的重叠元素会覆盖较小的元素。
		//auto盒子不会创建一个新的局部层叠上下文。盒子在当前层叠上下文的层叠等级是 0。
		// <integer>盒子在当前层叠上下文的层叠等级就是 <integer> 的值。盒子还会创建一个局部层叠上下文。
		// 这意味着该元素的后代元素不会和该元素的外部元素比较 z-index。
		background: white;
	}
	.pic{
		width: 24px;
		height: 24px;
		z-index: 1;
		position: absolute;
		top: 0px;
		left: calc(50% - 12px);
		transition: top 0.3s;
		// 过渡可以为一个元素在不同状态之间切换的时候定义不同的过渡效果。比如在不同的伪元素之间切换,
		// 像是 :hover,:active 或者通过 JavaScript 实现的状态变化。
	}
	.pic.active{
		top:-24px;
	}
}
</style>
上面主要需要多练习的是css的样式,会行成一个获取焦点后,给一个小图片的提示,这里图片不能显示出来,![获取焦点后显示小图片](https://img-blog.csdnimg.cn/direct/cc41261eb2b14b93b181319d58a920f2.jpeg)
  • 近期所有学习的汇总
    根据老师的视频,做了一个小功能,包含了近期学习的各个组件使用的方法,然后在最后,自己添加了一个小的提示框,虽然距离自己的设想还有点远,但初步达到了效果
<template>
	<view class="title">
		近期热梗
	</view>

	<view class="out">
		<view class="list">
			<view class="row" v-for="(item,index) in lists" :key="item.id">
				<view class="text">{{index+1}}.{{item.title}}</view>
				<view class="close" @click="onClick(index)">
					<icon type="clear" size="26" />
				</view>
			</view>
		</view>
		<view class="count">
			共{{lists.length}}条梗
		</view>
		<view class="comment">
			<input type="text" placeholder="请输入热梗..." v-model="inpValue" />
			<!-- 这里做个记录:设置了disabled,但是在h5页面上并没有效果,点击后还是会进入设置的点击事件
			因此就在点击事件中添加了判断;由于HTML规范的原因,所以设置<button>元素的disabled属性是无效的
			在微信小程序中设置的disabled,是有效果的 -->
			<button size="mini" type="primary" :disabled="inpValue.length<3 " @click="onsubmit">
				发布
				<!-- :disabled="inpValue.length>0 ? false : true " -->
			</button>
		</view>
	</view>
</template>

<script setup>
	import {
		ref
	} from "vue";

	const inpValue = ref("");

	const lists = ref([{
			id: 111,
			title: "刚满18岁"
		},
		{
			id: 222,
			title: "我不吃牛肉"
		},
		{
			id: 333,
			title: "遥遥领先"
		},
		{
			id: 444,
			title: "哪里贵了"
		}
	])
	//这是在网上查的,是uni-app下的api,这是一个提示框
	function showToast() {
		uni.showToast({
			title: '最少输入三个字符'
		});
	}
	function onClick(index) {
		lists.value.splice(index, 1)
	}
	//这里对应上面的判断,在h5页面上button设置了禁用,没有效果
	//这里的判断,不能和templat中,直接用变量名.length进行长度判断,
	//不然是没有效果的,需要使用值进行判断才可以
	function onsubmit() {
		if (inpValue.value.length < 3) {
			console.log("长度不够");
			showToast();
		} else {
			console.log("够了" + inpValue.value.length);
			lists.value.push({
				id: Date.now(),
				title: inpValue.value
			});
			inpValue.value = "";
		}
	}
</script>
<style lang="scss" scoped>
	.title {
		font-size: 26px;
		text-align: center;
		color: #3c3c3c;
		padding: 30px 0 15px;
	}

	.out {
		width: 90vw;
		margin: 15px auto;
		box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
		border-radius: 5px;
		padding: 15px;
		box-sizing: border-box;

		.list {
			.row {
				padding: 10px 0;
				border-bottom: 1px solid #e8e8e8;
				display: flex;
				justify-content: space-between;
				align-items: center;
				font-size: 18px;
				color: #333;

				.text {
					padding-right: 5px;
					box-sizing: border-box;
				}
			}
		}

		.count {
			padding: 10px 0;
			font-size: 15px;
			color: #888;
			text-align: center;
		}

		.comment {
			display: flex;
			margin-top: 10px;

			input {
				flex: 4;
				background: #f4f4f4;
				margin-right: 5px;
				height: 100%;
				height: 32px;
				border-radius: 4px;
				padding: 0 10px;
				color: #333;
			}

			button {
				flex: 1;
			}
		}
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Meilisearch vs Elasticsearch

2个搜索引擎的比较&#xff08;官方说法&#xff09;&#xff1a;Meilisearch vs Elasticsearch Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需…

SpringCloudAlibaba:5.1Sentinel的基本使用

概述 简介 Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 官网 https://sentinelguard.io/zh-cn/ Sentinel的历史 2012 年&#xff0c;Sentinel 诞生&#xff0c;主要功能为入口流量控制。 2013-2017 年…

宝塔面板如何删除一个站点

我们一般的网站都是PHPMySQL开发的&#xff0c;所以删除站点&#xff0c;就要先删数据库&#xff0c;再删网站目录 注意&#xff1a;一点要确保无用的再删 删除站点目录

【C++】CentOS环境搭建-编译安装Boost库(附CMAKE编译文件)

【C】环境搭建-编译安装Boost库 Boost库简介Boost库安装通过YUM安装&#xff08;版本较低 V1.53.0&#xff09;通过编译安装&#xff08;官网最新版本1.85.0&#xff09;1.安装相关依赖2.查询官网下载最新安装包并解压3.编译Boost4.安装Boost库到系统路径 Boost库验证 Boost库简…

通义千问2.5正式发布,能力升级,全面赶超GPT4

简介 在人工智能的大潮中&#xff0c;大模型的竞争愈发激烈。今日&#xff0c;阿里云发布了其最新的通义千问2.5大模型&#xff0c;引起了业界的广泛关注。这款模型不仅在性能上全面赶超了GPT-4&#xff0c;还在多个基准测评中取得了优异的成绩&#xff0c;展现了国产AI技术的…

如何把公章盖在电子档文件上?

将公章盖在电子档文件上&#xff0c;尤其是确保其法律效力和安全性&#xff0c;通常涉及以下步骤&#xff1a; 准备工作 获取合法的电子公章&#xff1a;确保你拥有公司或机构正式授权的电子公章图像&#xff0c;且该图像经过了必要的加密或数字签名处理&#xff0c;以确保其…

LPDDR5电路设计的新功能

最近因为需要使用到LPDDR5&#xff0c;快速地浏览了JEDEC标准文档&#xff0c;发现与前几代相比出现了一些新的电路设计功能&#xff0c;总结为如下三点&#xff1a; 1. CK/WCK/RDQS时钟方案&#xff1b; 2. 电源的PDN设计目标&#xff1b; 3. DQ, DMI和RDQS的Rx端DFE均衡技术。…

五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第一节 Llama 3 本地 Web Demo 部署

课程文档&#xff1a; https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频&#xff1a; https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid2892740&spm_id_from333.788.0.0 操作平台&#xff1a; https://studio.intern-ai.org.cn/consol…

大模型入门(六)—— RLHF微调大模型

一、RLHF微调三阶段 参考&#xff1a;https://huggingface.co/blog/rlhf 1&#xff09;使用监督数据微调语言模型&#xff0c;和fine-tuning一致。 2&#xff09;训练奖励模型 奖励模型是输入一个文本序列&#xff0c;模型给出符合人类偏好的奖励数值&#xff0c;这个奖励数值…

亚马逊云科技中国峰会:与你开启云计算与前沿技术的探索之旅

亚马逊云科技中国峰会&#xff1a;与你开启云计算与前沿技术的探索之旅 Hello,我是科技博主Maynor&#xff0c;非常高兴地向你们推荐亚马逊云科技中国峰会&#xff0c;这是一场将于 5 月 29 日至 30 日在上海世博中心举办的科技盛会&#xff0c;如果你对云计算、行业发展新趋势…

IDEA 使用maven编译,控制台出现乱码问题的解决方式

前言 使用idea进行maven项目的编译时&#xff0c;控制台输出中文的时候出现乱码的情况。 通常出现这样的问题&#xff0c;都是因为编码格式不一样导致的。既然是maven出的问题&#xff0c;我们在idea中查找下看可以如何设置文件编码。 第一种方式 在pom.xml文件中&#xff…

Meta FAIR: 深层网络不合理的低效性

这篇文章的标题"The Unreasonable Ineffectiveness of the Deeper Layers"巧妙地呼应了著名物理学家尤金维格纳在1960年发表的一篇论文"数学在自然科学中不合理的有效性"(The Unreasonable Effectiveness of Mathematics in the Natural Sciences)。维格纳…

FPGA+炬力ARM实现VR视频播放器方案

FPGA炬力ARM方案&#xff0c;单个视频源信号&#xff0c;同时驱动两个LCD屏显示&#xff0c;实现3D 沉浸式播放 客户应用&#xff1a;VR视频播放器 主要功能&#xff1a; 1.支持多种格式视频文件播放 2.支持2D/3D 效果实时切换播放 3.支持TF卡/U盘文件播放 4.支持定制化配置…

Linux运维:centos环境变量

前言 在 Linux 运维工作中&#xff0c;管理环境变量是至关重要的一项任务。在 CentOS 环境下&#xff0c;正确配置环境变量可以使系统更加高效和易于管理。 本文将重点讨论 CentOS 环境下的环境变量设置&#xff0c;并就python的环境变量配置方案进行讲解&#xff08;不包含Ano…

AutoModelForCausalLM.from_pretrained 函数调用本地权重报错

文章目录 1、代码报错的位置&#xff08;前情提要&#xff09;finetune_lora.shfintune_clm_lora.py 2、报错截图2.1、huggingfaces上的 meta-llama/Llama-2-7b-chat-hf2.2、服务器上模型文件路径 3、特别注意事项 1、代码报错的位置&#xff08;前情提要&#xff09; 在终端直…

06.命令的组合使用

命令的组合使用 1.查询当前整个系统每个进程的线程数 我们经常遇到这样的问题&#xff0c;比如某台服务器的CPU 使用率飙升&#xff0c;通过top命令查看是某个程序&#xff08;例如java&#xff09;占用的cpu比较大&#xff0c;现在需要查询java各个进程下的线程数情况。可以通…

Reactor Netty HTTP 服务器端-响应式编程-014

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Next Generation API Development Platform …

风扇开启执行逻辑

执行流程 public static void businessExecutionWork(){//以下为业务逻辑部分System.out.println("1、根据电池包控制风扇服务执行 开始!");//1、获取电池包电压、电流、环境温度//获取电池包电压、电流、环境温度ObtainBatteryDataService obtainBatteryDataServic…

Docker 怎么将映射出的路径设置为非root用户权限

在Docker中&#xff0c;容器的根文件系统默认是由root用户拥有的。如果想要在映射到宿主机的路径时设置为非root用户权限&#xff0c;可以通过以下几种方式来实现&#xff1a; 1. 使用具有特定UID和GID的非root用户运行容器&#xff1a; 在运行容器时&#xff0c;你可以使用-u…

监控异地组网怎么组网?

监控异地组网是指在不同地域的网络环境下&#xff0c;实现对监控设备的远程访问和管理。在传统的网络环境下&#xff0c;由于网络限制和设备配置等问题&#xff0c;监控设备的远程访问往往受到一定的限制和困扰。为了解决这个问题&#xff0c;引入了天联组网技术&#xff0c;实…
最新文章