uni-app的初使用(附源码学习)

news2024/12/26 14:35:57

uni-app代码编写,基本语言包括js、vue、css。以及ts、scss等css预编译器。

新建项目等基础指路:

关于uni-app的下载及使用-CSDN博客

1.vue文件

由三个一级节点组成,分别是template、script、style

<template>
</template>

<script>
</script>

<style>
</style>

 简单理解就如下图所示

2. 插值

用 {{ }} 进行文本插值。 就是将数据展示到模板(template)中。

 运行结果   ---> 浏览器&手机模拟器

3.指令

带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。

常用的举例说明一下

  • v-bind,缩写为“ :”,用于响应式地更新 HTML attribute
<!-- 完整语法 -->
<a v-bind:href="url">...</a>

<!-- 缩写 -->
<a :href="url">...</a>

<!-- 动态参数的缩写 (2.6.0+) -->
<a :[key]="url"> ... </a>

 可以用修饰符指定不同的绑定类型。比如 class和style,可以实现动态的切换状态。

参考代码

<template>
	<view class="con">
		<h3 v-bind:class="{active:isActive}">教堂的白鸽不会亲吻乌鸦</h3>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				isActive:false,
			}
		}
	}
</script>

<style>
	.con{
		width: 100%;
		height: 100px;
		text-align: center;
		line-height: 100px;
		margin: 20px 0;

	}
	.active{
		background-color: antiquewhite;
	}
</style>
  • v-on指令,缩写为“ @ ”,它用于监听 DOM 事件
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>

<!-- 缩写 -->
<a @click="doSomething">...</a>

<!-- 动态参数的缩写 (2.6.0+) -->
<a @[event]="doSomething"> ... </a>

 

参考代码

<template>
	<view class="con">
		<h3 v-bind:class="{active:isActive}">教堂的白鸽不会亲吻乌鸦</h3>
		<button v-on:click="add">点击</button>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				isActive:false,
			}
		},
		methods:{
			add(){
				console.log("触发click事件")
				this.isActive=true
			}
		}
	}
</script>

<style>
	.con{
		width: 100%;
		height: 100px;
		text-align: center;
		line-height: 100px;
		margin: 20px 0;

	}
	button{
		width: 100px;
	}
	.active{
		background-color: antiquewhite;
	}
</style>

 4.条件渲染

v - if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值的时候被渲染。 也可以用 v - else 添加一个“else 块”。

 

参考代码

<template>
	<view class="con">
		<h3 v-bind:class="{active:isActive}">教堂的白鸽不会亲吻乌鸦</h3>
		<button v-on:click="add">点击</button>
		
		<hr />
		
		<view v-if="see">白鸽</view>
		<view v-else>乌鸦</view>
		<button @click="change">切换</button>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				isActive:false,
				see:true
			}
		},
		methods:{
			add(){
				console.log("触发click事件")
				this.isActive=true
			},
			change(){
				this.see = !this.see
			}
		}
	}
</script>

<style>
	.con{
		width: 100%;
		height: 100px;
		text-align: center;
		line-height: 100px;
		margin: 20px 0;

	}
	button{
		width: 100px;
		margin-bottom: 30px;
	}
	.active{
		background-color: antiquewhite;
	}
</style>

v - else 元素必须紧跟在带 v - if  或者 v-else-if 的元素的后面,否则它将不会被识别。

如果想切换多个元素,可以把一个 template 元素当做不可见的包裹元素,并在上面使用 v-if。

5.列表渲染

 v - for 基于一个数组来渲染一个列表。

v - for指令需要使用 item,index in items  形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。

index 当前项的索引(从0开始)。

渲染列表

参考代码

<template>
	<view>
		<h1>19870504</h1>
		<view v-for="item,index in array" class="num1">
			 {{index + 1}} : {{item}}
		</view>
	</view>
</template>

<script>
	export default {
		data(){
			return{
				array:[1987,123,234,345,456,567,678,789]
			}
		}
	}
</script>

<style scoped>
	h1{
		width: 100%;
		height: 300px;
		text-align: center;
		line-height: 300px;
		color: #5ccf66;
	}
	
	.num1{
		margin: 30px 50px;
	}
</style>
渲染数组

参考代码

<template>
	<view>
		<view class="box">
			<view v-for="item,index in list" class="num2">
				序号:{{item.id}}
				书名:{{item.name}}
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data(){
			return{
				list:[
					{id:1,name:"渣反"},
					{id:2,name:"天官"},
					{id:3,name:"魔道"}
				],
			}
		}
	}
</script>

<style scoped>
	.box{
		width: 200px;
		height: 120px;
		margin: 20px 50px;
		border: 1px solid darkred;
	}
	.num2{
		margin: 10px;
	}
</style>
渲染对象

语法是 v - for = “(value, name, index) in object”

value是属性值;name是属性名;index是索引(从0开始)

参考代码

<template>
	<view>
		<view v-for="(value,name,index) in object">
			{{index}}.{{name}}.{{value}}
		</view>
	</view>
</template>

<script>
	export default {
		data(){
			return{
				object:{
					title:'abcde',
					num:'12345'
				}
			}
		}
	}
</script>

 在组件上使用 v - for 时,key是必须有的

这是完整代码及效果图

<template>
	<view>
		<h1>19870504</h1>
		<view v-for="item,index in array" class="num1">
			 {{index + 1}} : {{item}}
		</view>
		<view class="box">
			<view v-for="item,index in list" class="num2" :key="item.id">
				序号:{{item.id}}
				书名:{{item.name}}
			</view>
		</view>
		<view v-for="(value,name,index) in object">
			{{index}}.{{name}}.{{value}}
		</view>
	</view>
</template>

<script>
	export default {
		data(){
			return{
				array:[1987,123,234,345,456,567,678,789],
				list:[
					{id:1,name:"渣反"},
					{id:2,name:"天官"},
					{id:3,name:"魔道"}
				],
				object:{
					title:'abcde',
					num:'12345'
				}
			}
		}
	}
</script>

<style scoped>
	h1{
		width: 100%;
		height: 120px;
		text-align: center;
		line-height: 120px;
		color: #5ccf66;
	}
	
	.num1{
		margin: 30px 50px;
	}
	.box{
		width: 200px;
		height: 120px;
		margin: 20px 50px;
		border: 1px solid darkred;
	}
	.num2{
		margin: 10px;
	}
</style>

组件及组件库使用会后续更新,欢迎指正 

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

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

相关文章

机器学习 | 密度聚类和层次聚类

密度聚类和层次聚类 密度聚类 背景知识 如果 S 中任两点的连线内的点都在集合 S 内&#xff0c;那么集合 S称为凸集。反之&#xff0c;为非凸集。 DBSCAN 算法介绍 与划分和层次聚类方法不同&#xff0c;DBSCAN(Density-Based Spatial Clustering of Applications with Noi…

Jmeter插件技术:性能测试中服务端资源监控

过程中我们需要不断的监测服务端资源的使用情况&#xff0c;例如CPU、内存、I/O等。 Jmeter的插件技术可以很好的实时监控到服务器资源的运行情况&#xff0c;并以图形化的方式展示出来&#xff0c;非常方便我们性能测试分析。 操作步骤&#xff1a; 1、安装插件管理器 插件…

用最通俗的语言讲解 TCP “三次握手,四次挥手”

目录 一. 前言 二. TCP 报文的头部结构 三. 三次握手 3.1. 三次握手过程 3.2. 为什么要三次握手 四. 四次挥手 4.1. 四次挥手过程 4.2. 为什么要四次挥手 五. 大白话说 5.1. 大白话说三次握手 5.2. 大白话说四次挥手 六. 总结 一. 前言 TCP 是一种面向连接的、可靠…

Ebullient开发文档之OTA升级(从TF中升级简洁明了)

一. 简介 这一篇将给大家介绍如何进行OTA升级(esp32s3), 为了简单方便&#xff0c;可操作性强&#xff0c;这次是从TF中读取固件来进行跟新&#xff0c;本来想看看网上有没有参考的&#xff0c;有是有&#xff0c;但绝大多数都是基于官方的例程&#xff0c;甚至贴出来的源码和…

Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)

背景&#xff1a;在开发实践中&#xff0c;如果没有明确的规定URL&#xff0c;可以参考&#xff1a; 传统接口 获取数据列表,固定接口路径&#xff1a;/数据类型的复数 例如&#xff1a;/albums/select RESTful接口 - 根据ID获取某条数据&#xff1a;/数据类型的复数/{id} - 例…

mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)

目录 概念理解 mysql 狭义 广义 CS模式 mysqld 守护进程 (daemon) 数据库服务 数据库 一般 广义上 数据库 为什么要有数据库 主流数据库​​​​​​​ mysql架构 第一层 -- 链接池 第二层 -- 翻译 第三层 -- 存储引擎​​​​​​​ 存储引擎介绍 总结 …

ansible的脚本—playbook剧本

目录 目录 一、playbook 1、简介 2、playbook组成部分&#xff1a; 3、如何编写Playbook&#xff1f; 4、语句的横向/纵向写法 二、playbook实例&#xff1a; 1、playbook模版&#xff1a; 2、playbook的条件判断&#xff1a; 3、playbook中的循环&#xff1a; 4、循…

【已解决】taos时序数据库3.0版本,怎么按照时间分组?

taos数据库中按照时间分组&#xff0c;在2.4版本时候可以直接使用INTERVAL(time_unit)来查询。例如 前面可以直接添加_ts的。但是在3.0版本之后&#xff0c;如果直接使用的话&#xff0c;只会返回count&#xff1a; 没有前面的时间。那么在3.0版本时候&#xff0c;怎么修改呢&a…

Ubuntu18.04、CUDA11.1安装TensorRT

最近想试试推理加速&#xff0c;因为跑的预测有点慢&#xff0c;一开始是打算从数据处理上实现&#xff0c;采用并行数据处理&#xff0c;但是这个有所难度&#xff0c;而且有几张显卡可用&#xff0c;就想着怎么把显卡利用上。而且了解到推理加速后&#xff0c;就先尝试一下看…

Github项目推荐:在线rename

项目地址 GitHub - JasonGrass/rename: 在线文件批量重命名 项目简介 一个开源的在线重命名文件工具。利用了新的浏览器API获取文件句柄&#xff0c;在不上传文件的情况下对文件进行重命名。可以作为前端文件操作api学习范例。 项目截图

HTML5刷题笔记

在 HTML5 中&#xff0c;onblur 和 onfocus 是&#xff1a;事件属性 onblur 和 onfocus 属于焦点事件&#xff1a; onblur&#xff1a;失去焦点 onfocus&#xff1a;获取焦点 HTML5事件window 事件属性 针对 window 对象触发的事件&#xff1a; onafterprint script 文档…

【Chrome】ERR_SSL_PROTOCOL_ERROR问题

文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后&#xff0c;有的https访问不了&#xff0c;报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错&#xff0c;顺着这个思路接着查看到大佬的结论&#xff1a;服务器nginx使用的openssl版本过低&#…

新下载的Redis启动任务管理器不显示服务

遇到问题&#xff1a;刚刚下载的Redis解压后启动&#xff0c;在任务管理器无法找到Redis服务 但是Redis确实是启动的 解答&#xff1a; 那是因为还需要使用管理员的身份打开终端运行安装一次 命令如下&#xff1a; redis-server.exe --service-install redis.windows.conf --…

Ubuntu 常用命令之 reboot 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 reboot命令在Ubuntu系统中用于重新启动系统。这个命令通常需要管理员权限才能执行。 reboot命令的参数如下 -f 或 --force&#xff1a;强制重启&#xff0c;不调用shutdown -r进行友好重启。-p 或 --poweroff&#xff1a;在重启…

7-1 单身狗(PTA - 数据结构)

由于这道题在留的作业中&#xff0c;排序和查找都有&#xff0c;所以我先写这道题&#xff08;图的先放放&#xff09; “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人&#xff0c;以便给予特殊关爱。 输入格式&#xff1a; 输入第一行…

【Earth Engine】协同Sentinel-1/2使用随机森林回归实现高分辨率相对财富(贫困)制图

目录 1 简介与摘要2 思路3 效果预览4 代码思路5 完整代码6 后记 1 简介与摘要 最近在做一些课题&#xff0c;需要使用Sentinel-1/2进行机器学习制图。 然后想着总结一下相关数据和方法&#xff0c;就花半小时写了个代码。 然后再花半小时写下这篇博客记录一下。 因为基于多次拍…

二叉搜索树(AVL树,红黑树)+封装

就像学习其他的东西一样&#xff0c;首先我们要知道二叉搜索树的作用和定义是什么&#xff01; 首先顾名思义&#xff0c;二叉搜索树肯定是被用来为搜索服务的数据结构。 并且它的搜索效率可以达到logN,也就是一百万的数据也只用查找几十次&#xff08;AVL树可以控制在20次左…

日常工作中常用的抓包工具都有哪些呢?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

电子合同的分类有哪些?

1、从电子合同订立的具体方式的角度&#xff0c;可分为利用电子数据交换订立的合同和利用电子邮件订立的合同&#xff1b; 2、从电子合同标的物的属性的角度&#xff0c;可分为网络服务合同、软件授权合同、需要物流配送的合同等&#xff1b; 3、从电子合同当事人的性质的角度…

使用Gitee中的CI/CD来完成代码的自动部署与发布(使用内网穿透把本地电脑当作服务器使用)

&#x1f4da;目录 &#x1f4da;简介:⚙️ 所需工具&#xff1a;&#x1f4a8;内网穿透配置&#x1f4ad;工具介绍✨命令安装&#x1f38a;配置Cpolar&#x1f573;️关闭防火墙&#x1f95b;防火墙端口放行规则&#xff08;关闭防火墙可以忽略&#xff09;&#x1f36c;小章总…