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

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>

 

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

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

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

相关文章

设计模式——外观模式(Facade Pattern)

概述 外观模式又称为门面模式&#xff0c;它通过引入一个外观角色来简化客户端与子系统之间的交互&#xff0c;为复杂的子系统调用提供一个统一的入口&#xff0c;降低子系统与客户端的耦合度&#xff0c;且客户端调用非常方便。它是一种对象结构型模式。外观模式结构图如下所示…

ansible的脚本—playbook剧本

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

优维科技荣获第二届中国赛宝信息技术应用创新优秀解决方案三等奖

近日&#xff0c;“第二届中国赛宝信息技术应用创新优秀解决方案”评选活动圆满结束。优维科技所提交的《Hyperlnsight超融合持续观测解决方案》、《EasyOps一体化运维平台》从全国近300份申报方案中脱颖而出&#xff0c;荣获2023中国赛宝信息技术应用创新优秀解决方案奖。 本…

【操作系统】什么是进程?

文章目录 进程进程的属性进程的状态挂起 进程 进程是一个可并发执行的具有独立功能的程序关于某个数据集合的执行过程&#xff0c;也是操作系统进行资源分配和保护的基本单位。 进程的属性 结构性&#xff1a; 共享性&#xff1a;同一程序运行于不同数据集合上构成不同的进程…

C++用哈希表封装unordered_set和unordered_map

目录 前言 一、修改kv模型为data模型 1.添加MyUnorderedSet.h和MyUnorderedMap.h 2.修改HashNode 3.修改HashTable 二、普通迭代器 三、const迭代器 四、unordered_map重载operator[] 总结 前言 在上一篇文章中&#xff0c;我们手写了一份哈希表&am…

【图神经网络】在节点分类任务中无特征节点的特征表示

无特征节点的特征表示 节点度数degree pagerank 以pagerank起源的应用场景为例&#xff0c;不是所有的网站都是同等重要的&#xff0c;所以需要根据结构信息对节点进行排序。 直觉上&#xff0c;如果一个网站它有很多链接&#xff0c;它就很重要&#xff0c;举例来说&#…

Java版企业电子招标采购系统源码—鸿鹄电子招投标系统-企业战略布局下的采购寻源

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及审…

C# WPF上位机开发(业务主流程才是核心)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】前面我们说了很多的c# wpf编程技术,里面有控件,有绘图,有数据库,有多线程等技术。但是他们都属于实现的部分,没有和具体的行业进行挂钩,相当于是通用技术部分。这个通用部分一般通过书…

【深度学习】序列生成模型(五):评价方法计算实例:计算BLEU-N得分【理论到程序】

文章目录 一、BLEU-N得分&#xff08;Bilingual Evaluation Understudy&#xff09;1. 定义2. 计算N1N2BLEU-N 得分 3. 程序 给定一个生成序列“The cat sat on the mat”和两个参考序列“The cat is on the mat”“The bird sat on the bush”分别计算BLEU-N和ROUGE-N得分(N1或…

Dubbo面试题及答案,持续更新

在准备Dubbo相关的面试题时&#xff0c;我发现网络上的资源往往缺乏深度和全面性。为了帮助广大Java程序员更好地准备面试&#xff0c;我花费了大量时间进行研究和整理&#xff0c;形成了这套Dubbo面试题大全。 这套题库不仅包含了一系列经典的Dubbo面试题及其详尽答案&#x…

语音识别与人机交互:发展历程、挑战与未来前景

导言 语音识别技术作为人机交互领域的重要组成部分&#xff0c;近年来取得了巨大的发展。本文将深入研究语音识别与人机交互的发展历程、遇到的问题、解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。我们将探讨在这个领域&#xff0c;哪一方能取得竞争…

CCF编程能力等级认证GESP—C++6级—20230923

CCF编程能力等级认证GESP—C6级—20230923 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)小杨买饮料小杨的握手问题 答案及解析单选题判断题编程题1编程题…

微信小程序-选择和分割打开地图选择位置的信息

一、 前言 废话不多说&#xff0c;单刀直入。 本文要实现的功能是微信小程序中打开地图选择位置&#xff0c;以及将返回的位置信息分割。 例如返回的位置信息是&#xff1a;广东省深圳市龙岗区xxxxx小区 分割后变成&#xff1a; {province: "广东省",city: "深…

【蓝桥杯】专题练习

前缀和 3956. 截断数组 - AcWing题库 一看到题目很容易想到的思路是对数组求前缀和&#xff0c;然后枚举两个分段点就好&#xff0c;时间复杂度是On^2&#xff0c;n是1e5会t&#xff0c;需要优化。 朴素的代码&#xff0c;会超时&#xff1a; #include <bits/stdc.h> u…

文件包含 [SWPUCTF 2021 新生赛]include

打开题目 要求我们传入一个file进去&#xff0c;那我们get传入 /?file1 得到源码&#xff0c;并且提示我们flag在flag,php下 在源代码中&#xff0c;我们看见了allow_url_include函数&#xff0c;我们知道这涉及到文件包含。 一般默认allow_url_fopen是on的&#xff0c;那在…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring的AOP前奏

第一章 AOP前奏 1.1 代理模式 代理模式&#xff1a;我们需要做一件事情&#xff0c;又不期望自己亲力亲为&#xff0c;此时&#xff0c;可以找一个代理【中介】 我们【目标对象】与中介【代理对象】不能相互转换&#xff0c;因为是“兄弟”关系 1.2 为什么需要代理【程序中…

使用C语言实现文件的拷贝——底层内存分析

使用C语言实现文件的拷贝 本文主要涉及sprintf&#xff08;&#xff09;函数的讲解以及系统IO与标准IO的区别和一个实例使用C语言实现文件的拷贝&#xff0c;在最后还深度刨析了文件拷贝的底层原理。 文章目录 使用C语言实现文件的拷贝一、 sprintf()函数1.1 sprintf ()函数的参…

设计测试用例(万能思路 + 六种设计用例方法)(详细 + 图解 + 实例)

一、设计测试用例的万能思路 针对某个物品/功能进行测试。 万能思路&#xff1a;功能测设 界面测试 性能测试 兼容性测试 易用性测试 安全测试。 总结&#xff1a; 功能测试&#xff1a; 水杯&#xff1a;装水、喝水... 注册场景&#xff1a;注册 登录 想象日常使用…

2017年第六届数学建模国际赛小美赛A题飓风与全球变暖解题全过程文档及程序

2017年第六届数学建模国际赛小美赛 A题 飓风与全球变暖 原题再现&#xff1a; 飓风&#xff08;也包括在西北太平洋被称为“台风”的风暴以及在印度洋和西南太平洋被称为“严重热带气旋”&#xff09;具有极大的破坏性&#xff0c;往往造成数百人甚至数千人死亡。   许多气…

【Spring Security】打造安全无忧的Web应用--入门篇

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Spring Security的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Spring Security是什么 1.概…