uni-app的基本使用

uniapp 图片裁剪插件推荐 uniapp 微信小程序 图片裁剪 上传头像 固定图片大小 等比例缩放 轻量级 实用 高效 推荐裁剪工具 阅读详情

uni-app介绍

uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码。可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。

即使不跨端。uni-app同时也是更好的小程序开发框架。

为什么要去学习uni-app?
相对开发者来说,减少了学习成本,因为只学会uni-app之后,即可开发出iOS、Android、H5、以及各种小程序的应用,不需要再去学习开发其他应用的框架。相对公司而言,也大大减少了开发成本。

环境搭建

安装编辑器hbuilderX 下载地址
HBuilderX是通用的前端开发工具,但为uni-app做了特别强化。
下载APP开发版,可开箱即用
安装微信开发者工具 下载地址 根据电脑配置下载

利用HbuilderX初始化项目

点击HbuilderX菜单栏 :文件>新建>项目
选择uni-app,填些项目名称,项目创建的目录

介绍项目目录和文件作用

  • pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径,窗口样式,原生的导航栏,底部的原生 tabbar 等
  • manifest.json 文件是应用的配置文件,用于指定应用的名称,图标,权限等
  • App.vue 是我们的根组件,所有页面都是在App.vue 下切换的,是页面入口文件,可以调用应用的生命周期函数
  • main.js 是我们项目的入口文件,主要作用是初始化 vue 实例并使用需要的插件
  • uni.scss 文件的用途是为了方便整体控制应用的风格,比如按钮的颜色,边框风格,该文件里预置了一批 scss 变量预置
  • unpackage 就是打包目录,在这里有各个平台的打包文件
  • pages 所有页面存放目录
  • static 静态资源目录,例如图片,字体文件
  • compontents 组件存放目录

为了实现多端兼容,综合考虑编译速度、运行性能等因素,uni-app 约定了如下开发规范:

  • 页面文件遵循 Vue 单文件组件 (SFC) 规范
  • 组件标签靠近小程序规范,详见uni-app 组件规范
  • 接口能力(JS API)靠近微信小程序规范,但需将前缀 wx 替换为 uni,详见uni-app接口规范
  • 数据绑定及事件处理同 Vue.js 规范,同时补充了App及页面的生命周期
  • 为兼容多端运行,建议使用flex布局进行开发

全局配置和页面配置

通过globalStyle进行全局配置

用于设置应用的状态栏、导航条、标题、窗口背景色等。详细文档

在这里插入图片描述

通过pages来配置页面

官网pages链接
在这里插入图片描述
pages数组数组中第一项表示应用启动页

"pages": [ 、
		{
			"path":"pages/message/message" //启动页
		},
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "uni-app" //导航栏标题
			}
		}
	]

通过style修改页面的标题和导航栏背景色,并且设置h5下拉刷新的特有样式

{
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		{
			"path": "pages/message/message",
			"style":{
				"navigationBarTitleText":"信息页",
				"navigationBarBackgroundColor":"#007AFF",
				"h5":{
					"pullToRefresh":{
						"color":"#7D26CD"
					}
				}
			}
		},
		{
			"path": "pages/index/index"
		}
	]

配置tabbar

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。

Tips

  • 当设置 position 为 top 时,将不会显示 icon
  • tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。

属性说明:
在这里插入图片描述
其中 list 接收一个数组,数组中的每个项都是一个对象,其属性值如下:
在这里插入图片描述
案例代码:

	"tabBar":{
		"color":"#a0522d",
		"selectedColor":"#B3EE3A",
		"backgroundColor":"#FFFFFF",
		"borderStyle":"white",
		"position":"bottom",
		"list":[
			{
				"text":"首页",
				"pagePath":"pages/index/index",
				"iconPath":"static/tabs/home.png",
				"selectedIconPath":"static/tabs/home-active.png"
			},
			{
				"text":"信息",
				"pagePath":"pages/message/message",
				"iconPath":"static/tabs/message.png",
				"selectedIconPath":"static/tabs/message-active.png"
			},
			{
				"text":"信息",
				"pagePath":"pages/contact/contact",
				"iconPath":"static/tabs/contact.png",
				"selectedIconPath":"static/tabs/contact-active.png"
			}
		]
	}

condition启动模式配置

启动模式配置,仅开发期间生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面。
属性说明:

属性类型是否必填描述
currentNumber是当前激活的模式,list节点的索引值
listArray是启动模式列表

list说明:

属性类型是否必填描述
nameString是启动模式名称
pathString是启动页面路径
queryString否启动参数,可在页面的 onLoad 函数里获得

案例:

"condition":{
		"current":0,
		"list":[
			{
				"name":"详情页",
				"path":"pages/detail/detail",
				"query":"id=80"
			}
		]
	}

组件的基本使用

uni-app提供了丰富的基础组件给开发者,开发者可以像搭积木一样,组合各种组件拼接成自己的应用
uni-app中的组件,就像html中的div、p、span等标签的作用一样,用于搭建页面的基础结构

text文本组件的用法
text组件的属性
属性类型默认值必填说明
selectablebooleanfalse否文本是否可选
spacestring.否显示连续空格,可选参数:ensp、emsp、nbsp
decodebooleanfalse否是否解码

space值说明

值说明
ensp中文字符空格一半大小
emsp中文字符空格大小
nbsp根据字体设置的空格大小
  • text组件相当于行内标签、在同一行显示
  • 除了文本节点以外的其他节点都无法长按选中

Tips

  • <text> 组件内只支持嵌套 <text>,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。
  • 在app-nvue下,只有<text>才能包裹文本内容。无法在<view>组件包裹文本。
  • decode 可以解析的有 &nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;。
    各个操作系统的空格标准并不一致。
  • 除了文本节点以外的其他节点都无法长按选中。
  • 支持 \n 方式换行。
  • 如果使用 <span> 组件编译时会被转换为 <text>。
view视图容器组件的用法

View视图容器,类似于HTML中的div

组件的属性

在这里插入图片描述

button按钮组件的用法
组件的属性

官网链接

属性名类型默认值说明
sizeStringdefault按钮的大小
typeStringdefault按钮的样式类型
plainBooleanfalse按钮是否镂空,背景色透明
disabledBooleanfalse是否按钮
loadingBooleanfalse名称是否带loading图标
  • button 组件默认独占一行,设置 size 为 mini 时可以在一行显示多个

size有效值

值说明
default默认大小
mini小尺寸

type有效值

值说明
primary微信小程序、360小程序为绿色,App、H5、百度小程序、支付宝小程序、快应用为蓝色,字节跳动小程序为红色,QQ小程序为浅蓝色。如想在多端统一颜色,请改用default,然后自行写样式
default白色
war n红色
image组件的使用
组件的属性

官网链接
图片
在这里插入图片描述
Tips

  • <image> 组件默认宽度 300px、高度 225px;app-nvue平台,暂时默认为屏幕宽度
  • src 仅支持相对路径、绝对路径,支持 base64 码;
  • 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置
    image{will-change: transform} ,可优化此问题。
  • 自定义组件里面使用 <image>时,若 src 使用相对路径可能出现路径查找失败的情况,故建议使用绝对路径。
  • webp格式的图片在Android上是内置支持的。iOS上不同平台不一样,具体如下:app-vue下,iOS不支持;app-nvue下,iOS支持;微信小程序2.9.0起,iOS支持。
  • svg 格式的图片在不同的平台支持情况不同。具体为:app-nvue 不支持 svg 格式的图片,小程序上只支持网络地址。

mode有效值:
mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。最常用的有两种是aspectFit和aspectFill。
在这里插入图片描述

uni-app中的样式

  • rpx 即响应式px,一种根据屏幕宽度自适应的动态单位。以750宽的屏幕为基准,750rpx恰好为屏幕宽度。屏幕变宽,rpx实际显示效果会等比放大。
  • 使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束
  • 支持基本常用的选择器class、id、element等
  • 在 uni-app 中不能使用 * 选择器。
  • page 相当于 body 节点
  • 定义在 App.vue 中的样式为全局样式,作用于每一个页面。在 pages 目录下 的 vue文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 App.vue 中相同的选择器。
  • uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:
    • 字体文件小于 40kb,uni-app 会自动将其转化为 base64 格式;
    • 字体文件大于等于 40kb, 需开发者自己转换,否则使用将不生效;
    • 字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。
 @font-face {
     font-family: test1-icon;
     src: url('~@/static/iconfont.ttf');
 }
  • 如何使用scss或者less

uni-app中的数据绑定

在页面中需要定义数据,和我们之前的vue一模一样,直接在data中定义数据即可

export default{
		data(){
			return{
				msg:'hello'
			}
		}
	}
插值表达式的使用
  • 利用插值表达式渲染基本数据
<view>{{msg}}</view>
  • 在插值表达式中使用三元运算
<view>{{flag?'我是真的':'我是假的'}}</view>
  • 基本运算
<view>{{1+1}}</view>
v-bind动态绑定属性

在data中定义了一张图片,我们希望把这张图片渲染到页面上

export default {
		data() {
			return {
				img: 'https://img2.baidu.com/it/u=2937803703,3095540904&fm=11&fmt=auto&gp=0.jpg'
			}
		}
	}

利用v-bind进行渲染

<image v-bind:src="img"></image>

还可以缩写成:

<image :src="img"></image>
v-for的使用

data中定以一个数组,最终将数组渲染到页面上

data(){
	return{
		arr:[
			{name:'刘能',age:29},
			{name:'赵四',age:39},
			{name:'宋小宝',age:49},
			{name:'小沈阳',age:59}
		]
	}
}

利用v-for进行循环

<view v-for="(item,i) in arr" :key="i">名字:{{item.name}}---年龄:{{item.age}}</view>
uni中的事件

事件绑定
在uni中事件绑定和vue中是一样的,通过v-on进行事件的绑定,也可以简写为@

<button type="default" @:click="tapHandle">按钮</button>

事件函数定义在methods中

methods:{
	tapHandle(){
		console.log('真的点我了')
	}
}

事件传参

  • 默认如果没有传递参数,事件函数第一个形参为事件对象
//template
<button type="default" @:click="tapHandle">点我啊</button>
//script
methods:{
	tapHandle(e){
		console.log(e)
	}
}
  • 如果给事件函数传递参数了,则对应的事件函数形参接收的则是传递过来的数据
//template
<button type="default" @:click="tapHandle(20)">点我啊</button>
//script
methods:{
	tapHandle(num){
		console.log(num) //20
	}
}

如果既想传递参数又想拿到事件对象,在传递参数的时候使用$event可以把事件对象传递过去

//template
<button type="default" @:click="tapHandle(20,$event)">点我啊</button>
//script
methods:{
	tapHandle(num,e){
		console.log(num,e) 
	}
}

uni的生命周期

应用的生命周期

生命周期的概念:一个对象从创建、运行、销毁的整个过程被称为生命周期。
生命周期函数:在生命周期中每个阶段会伴随着每一个函数的触发,这些函数被称为生命周期函数。

uni-app支持如下应用生命周期函数:前四个是常用的
在这里插入图片描述

页面的生命周期

uni-app支持如下页面生命周期函数:第二个到第六个是常用的
在这里插入图片描述

下拉刷新

开启下拉刷新

在uni-app中有两种方式开启下拉刷新

  • 需要在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中开启enablePullDownRefresh。
  • 通过调用uni.startPullDownRefresh()方法来开启下拉刷新

通过配置文件开启
创建list页面进行演示

//template
<template>
	<view>
		<view v-for="item in list" :key="item">
			{{item}}
		</view>
	</view>
</template>
//script
<script>
	export default{
		data(){
			return{
				list:['前端','JAVA','UI','测试']
			}
		}
	}
</script>

通过pages.json文件中找到当前页面的pages节点,并在style选项中开启enablePullDownRefresh

{
	"path":"pages/list/list",
	"style":{
		"enablePullDownRefresh":true
	}
}

监听下拉刷新

通过onPullDownRefresh可以监听到下拉刷新的动作

export default{
		data(){
			return{
				list:['前端','JAVA','UI','测试']
			}
		},
		onPullDownRefresh() {
			console.log('触发了下拉刷新')
		},
		methods:{
			pullDown(){
				uni.startPullDownRefresh()
			}
		}
	}

关闭下拉刷新

uni.stopPullDownRefresh()
停止当前页面下拉刷新
案例演示:

<template>
	<view>
		<view>
			这是列表页
		</view>
		<view v-for="item in list" :key="item">
			{{item}}
		</view>
		<button type="default" @click="pullDown">下拉刷新</button>
	</view>
</template>
<script>
	export default{
		data(){
			return{
				list:['前端','JAVA','UI','测试']
			}
		},
		onPullDownRefresh() {
			console.log('触发了下拉刷新')
			setTimeout(()=>{
				this.list=['UI','测试','前端','JAVA']
				uni.stopPullDownRefresh()
			},2000)
		},
		methods:{
			pullDown(){
				uni.startPullDownRefresh()
			}
		}
	}
</script>

上拉加载

onReachBottom页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据

onReachBottom() {
	console.log('页面触底了')
}

在pages.json中的pages中的style配置项中的onReachBottomDistance是用来配置页面上拉触底事件触发时距页面底部距离,单位只支持px。
例如:

{
			"path":"pages/list/list",
			"style":{
				"enablePullDownRefresh":true,
				"onReachBottomDistance":200
			}
		}

上拉加载更多

onReachBottom() {
	console.log('页面触底了')
	this.list=[...this.list,...['测试','前端','JAVA','UI','测试']]
}

网络请求

在uni中可以调用uni.request方法进行请求网络请求
需要注意的是:在小程序中网络相关的API在使用前需要配置域名白名单

发送get请求

<template>
	<view>
		<button type="default" @click="get">发送get请求</button>
	<view>
</template>		
<script>
	export default{
		methods:{
			get(){
				uni.request({
					url:"https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata",
					method:"get", //默认为get,不写也可以
					success(res){
						console.log(res)
					}
				})
			}
		}
   	}

</script>

数据缓存

官方文档

uni.setStorage(OBJECT)

将数据存储在本地缓存中指定的key中,会覆盖掉原来该key对应的内容,这是一个异步接口。
OBJECT参数说明
在这里插入图片描述

代码演示

//template
<button type="primary" @click="setStorage">存储数据</button>
//script
setStorage(){
	uni.setStorage({
		key:'id',
		data:80,
		success() {
			console.log('存储成功')
		}
	})
}

uni.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

参数说明

在这里插入图片描述
代码演示

//template
<button type="primary" @click="setStorageSync">存储数据</button>
//script
setStorageSync(){
	uni.setStorageSync('id',100)
}

uni.getStorage(OBJECT)

从本地缓存中异步获取指定 key 对应的内容。

OBJECT 参数说明
在这里插入图片描述
success 返回参数说明

在这里插入图片描述
代码演示

//template
<button type="primary" @click="getStorage">获取数据</button>
//script
getStorage(){
	uni.getStorage({
		key:'id',
		success(res){
			console.log('获取成功',res)
		}
	})
}

uni.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容。
参数说明
在这里插入图片描述
代码演示

//template
<button type="primary" @click="getStorageSync">获取数据</button>
//script
getStorageSync(){
	const res=uni.getStorageSync('id')
	console.log(res)
}

uni.removeStorage(OBJECT)

从本地缓存中异步移除指定 key。
OBJECT 参数说明

在这里插入图片描述
代码演示

//template
<button type="primary" @click="removeId">移除id</button>
//script
removeId(){
	uni.removeStorage({
		key:'id',
		success() {
			console.log('删除成功')
		}
	})
}

uni.removeStorageSync(KEY)

从本地缓存中同步移除指定 key。
参数说明
在这里插入图片描述
代码演示

//template
<button type="primary" @click="removeId">移除id</button>
//script
removeId(){
	uni.removeStorageSync('id')
}

上传图片、预览图片

上传图片

uni.chooseImage(OBJECT)方法从本地相册选择图片或使用相机拍照。
OBJECT 参数说明
在这里插入图片描述
Tips

  • count 值在 H5 平台的表现,基于浏览器本身的规范。目前测试的结果来看,只能限制单选/多选,并不能限制数量。并且,在实际的手机浏览器很少有能够支持多选的。
  • sourceType 在H5端对应input的capture属性,设置为['album']无效,依然可以使用相机。
  • 可以通过用户授权API来判断用户是否给应用授予相册或摄像头的访问权限https://uniapp.dcloud.io/api/other/authorize
  • App端如需选择非媒体文件,可在插件市场搜索文件选择,其中Android端可以使用Native.js,无需原生插件,而iOS端需要原生插件。
  • 选择照片大多为了上传,uni ui封装了更完善的uni-file-picker组件,文件选择、上传到uniCloud的免费存储和cdn中,一站式集成。强烈推荐使用。

注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 uni.saveFile,在应用下次启动时才能访问得到。

success返回参数说明
在这里插入图片描述
File 对象结构如下
在这里插入图片描述
案例:

<template>
	<view>
		<button type="primary" @click="chooseImg">上传图片</button>
		<image v-for="item in imgArr" :src="item"></image>
	</view>
</template>

<script>
	export default{
		data(){
			return{
				imgArr:[]
			}
		},
		methods:{
			chooseImg(){
				uni.chooseImage({
					count:5,
					success:res=> {
						this.imgArr=res.tempFilePaths
					}
				})
			}
		}
	}
</script>

预览图片

uni.previewImage(OBJECT)方法预览图片。
OBJECT 参数说明
在这里插入图片描述
current 参数说明

1.9.5+ 支持传图片在 urls 中的索引值

current 为当前显示图片的链接/索引值,不填或填写的值无效则为 urls 的第一张。App平台在 1.9.5至1.9.8之间,current为必填。不填会报错

注意,当 urls 中有重复的图片链接时:

  • 传链接,预览结果始终显示该链接在 urls 中第一次出现的位置。
  • 传索引值,在微信/百度/字节跳动小程序平台,会过滤掉传入的 urls 中该索引值之前与其对应图片链接重复的值。其它平台会保留原始的urls 不会做去重处理。

longPressActions 参数说明
在这里插入图片描述
success 返回参数说明
在这里插入图片描述
案例:

<template>
	<view>
		<button type="primary" @click="chooseImg">上传图片</button>
		<image v-for="item in imgArr" :src="item" @click="previewImg(item)"></image>
	</view>
</template>
<script>
	export default{
		data(){
			return{
				imgArr:[]
			}
		},
		methods:{
			chooseImg(){
				uni.chooseImage({
					count:5,
					success:res=> {
						this.imgArr=res.tempFilePaths
					}
				})
			},
			previewImg(current){
				uni.previewImage({
					current:current,
					urls:this.imgArr,
					loop:true,
					indicator:'default'
				})
			}
		}
	}
</script>

TIPS

  • 在非H5端,previewImage是原生实现的,界面自定义灵活度较低。
  • 插件市场有前端实现的previewImage,性能低于原生实现,但界面可随意定义;插件市场也有适于App端的previewImage原生插件,提供了更多功能。

条件注释实现跨端兼容

uni-app 已将常用的组件、JS API 封装到框架中,开发者按照 uni-app 规范开发即可保证多平台兼容,大部分业务均可直接满足。

但每个平台有自己的一些特性,因此会存在一些无法跨平台的情况。

  • 大量写 if else,会造成代码执行性能低下和管理混乱。
  • 编译到不同的工程后二次修改,会让后续升级变的很麻烦。

在 C 语言中,通过 #ifdef、#ifndef 的方式,为 windows、mac 等不同 os 编译不同的代码。 uni-app 参考这个思路,为 uni-app 提供了条件编译手段,在一个工程里优雅的完成了平台个性化实现。

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。

  • #ifdef:if defined 仅在某平台存在
  • #ifndef:if not defined 除了某平台均存在
  • %PLATFORM%:平台名称

在这里插入图片描述
%PLATFORM% 可取值如下:

在这里插入图片描述
支持的文件

  • .vue
  • .js
  • .css
  • pages.json
  • 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

注意:

  • 条件编译是利用注释实现的,在不同语法里注释写法不一样,js使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用 <!-- 注释 -->;
  • 条件编译APP-PLUS包含APP-NVUE和APP-VUE,APP-PLUS-NVUE和APP-NVUE没什么区别,为了简写后面出了APP-NVUE;
  • 使用条件编译请保证编译前和编译后文件的正确性,比如json文件中不能有多余的逗号;
uni-app打包成安卓app步骤详解 前置: 开发环境 Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区 HBuilderX App离线SDK下载:最新android平台SDK下载 3.1.10版本起需要申请Appkey,具体请点击链接 正文: 通过uni-app实现一套代码在微信小程序和安卓端app同时适配 1.创建文件 创建Demo文件,采用uni-app 模板 2.创建应用 在https://dev.dcloud.net.cn/app页面创建相同名称的应用,并且获取 阅读详情

相关推荐

【第一趴】初探uni-app(uni-app发行者、uni-app推出背景、为什么选择uni-app)

聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出聚沙成塔【45天玩转uni-app】专栏,帮助大家对 uni-app 进行学习和理解,uni-app可以通过一套代码多端发行,相信你掌握本语言后无论是毕设还是求职项目都可以说是锦上添花,妥妥加分项;快来订阅专栏跟着凉哥一起来感受 uni-app 为开发者带来的劲感吧!

商务合作欢迎私信我 4万+

uni-app使用图片裁剪插件image-cropper

官网地址:https://github.com/wx-plugin/image-cropper 官方完整demo地址:https://github.com/wx-plugin/image-cropper-demo 一、背景: 二、初始准备 1、在项目中新建wxcomponents的文件夹,将官网下载下来的image-cropper插件文件夹粘贴进去 2、pages.json文件中添加image-cropper(哪个页面需要用到就添加到哪个页面下) "usingComponents"

weixin_40977578的博客 8728

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁&amp;amp;amp;quot;小姐姐&amp;amp;amp;quot;的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

简述uniapp的image标签的mode属性

uni-app的image标签是用于显示图片的组件,而mode属性则用于设置图片的显示模式,这个也是传统 web 开发中的。Uniapp 的与传统 web 开发中的相比多了一个mode属性,用来设置图片的裁剪、缩放模式。在开发中尽量养成每一个都设置mode的习惯。可以。一般只需要使用widthFixaspectFill这两个属性即可应对绝大多数情况。即只需设置宽度自动撑起高度的图片用widthFix;需要固定尺寸设置宽高,并保持图片不被拉伸的图片用。

qq_53114797的博客 8727

自定义LayoutManager实现android-pile-layout滑动卡片堆叠效果

这是我的第一篇博客,总算有个契机开始写博客了,就从自定义LayoutManager开始吧。 前段时间看到一个项目(android-pile-layout),效果特别不错,这是效果图: 效果确实不错,我看了下实现,是用的自定义的ViewGroup实现的,计算什么还搞的挺复杂的,具体的没细看。作者说也尝试过用LayoutManager实现,但是没找到合适的数学模型,好吧,看到数学模型我

u014296305的博客 1万+

《Python基础教程》专栏总结篇

今天给大家带来的文章是《Python基础教程》专栏总结篇,希望能对同学们有所帮助。 文章目录 1. 背景 2. 专栏亮点 3. 你的收获 4. 详细目录

weixin_43178406的博客 73万+

uniapp 开发注意事项

1:v-show 改成 v-if 1.static目录下的js文件不会被编译,如果里面有es6的代码,不经过转换直接运行,在手机设备上会报错。 2.css、less/scss等资源同样不要放在static目录下,建议这些公用的资源放在common目录下。 3.template内引入静态资源,如image、video等标签的src属性时,可以使用相对路径或者绝对路径。 4.js文件不支持使用/开头的方式引入。 5.css文件或style标签内引入css文件时(scss、les...

漫天随飞雪的博客 4624

2.Vivado软件基础操作

在本章节,我们以一个简单的计数器实例,介绍FPGA开发软件Vivado的基础操作流程,计数器实例程序的设计,在本课程中先不同掌握,后续课程将针对verilog编程进行讲解。 打开Vivado软件,会看到如下的界面: 点击如下图所示的: 点击Next> 将这个地方,设置路径,注意路径必须是英文路径。且文件夹名称第一个字符不能为数字。所有路径的名称的字符数量不能超过144个符号。 点击Next> 点击Next> 点...

FPGA/MATLAB学习教程/源码/项目合作开发 4480

uniapp开发微信小程序之上传图片的裁剪

uniapp微信小程序图片裁剪

only_zing的博客 2062

【BlueDroid】【PBAP】蓝牙电话本协议之同步通讯录分析(超详细)

Header - Type = "x-bt/vcard-listing":代表了该Request对应的Function为PullvCardListing;Profile:PBAP (4),上层应用层协议为PBAP,OBEX协议的上层应用层协议除了PBAP,还有OPP、MAP协议;Response in Frame:该request frame-485对应的Response frame为489;在PBAP协议同步通讯录和通讯记录中,都是基于OBEX协议实现的,PBAP协议作为了应用层协议;

风云说通信 2073

ER图从入门到精通:数据库建模全攻略

本文为数据库建模领域的 ER 图全面指南,系统解析从基础概念到实战应用的核心要点。首先介绍 ER 图的定义、三大组成元素(实体、属性、关系)及三种基础关系类型(一对一、一对多、多对多);其次详解绘制流程,涵盖工具选择(如 Visio、PowerDesigner)、需求分析方法及实体 - 属性 - 关系的分步建模技巧;进一步探讨弱实体、复合属性等高级概念,结合范式理论讲解模型优化策略;针对实体属性混淆、关系类型误判等常见问题提供解决方案;最后通过电商系统、图书馆管理系统等实际案例展示 ER 图设计全流程。

邓邓子的博客 4213

uni-app入门

一、uni-app简单介绍 什么是uni-app? uni-app 是使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台。 uni-app的优点 跨平台发行,运行体验更好 与小程序的组件、API一致; 兼容weex原生渲染,增加了开发效率高,但是由于weex坑比较多,建议还是使用局部渲染优化; 通用前端技术栈,学习成本更低 ...

呱呱的博客 2万+

扣子Coze智能体万字教程:从入门到精通,一文掌握AI工作流搭建

智能体 = 角色设定 + 提示词 + 变量输入一个好提示词的核心是结构、风格和复用性创建后可以一键发布成网页应用、对话助手整个过程0代码,只靠配置,人人可学,人人可用四、进阶一:理解「工作流」的威力如果你已经用扣子创建了几个简单的智能体,比如写个爆款小红书文案、生成一段短视频脚本,那恭喜你已经入门。但如果你还停留在“一个智能体 = 一段提示词”的层级,你离真正的智能体生产力革命,还差一步:学会搭建“工作流”——让多个大模型自动协同完成任务。

互联网架构师笔记 3508

uni-app ——uni-app的基本使用

本文主要介绍 uni-app的基本使用

Bonsoir777的博客 936

MAC-H3C官网inode客户端下载安装

MAC-H3C官网inode客户端下载安装

兴趣是最好的老师 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【uni-app】使用uni-app实现简单的登录注册功能

大家好,今天和大家分享一下如何在uni-app中实现简单的登录注册功能。首先你需要掌握一下知识点:1.网络请求 uni.request2.页面跳转,页面传参 uni.navigateTo3.本地缓存 uni.setStorageSync, uni.getStorageSync我们要使用到登录和注册接口,所以要知道如何进行网络请求。因为还需要进行注册,所以要进行跳转页面,跳转到注册页面所以要使用到页面跳转。

SqlloveSyn的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

uni-app基本使用

uni-app的菜鸟级入门教学

qq_63926557的博客 1416

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

uni-app下使用vant组件

1. 创建uni-app 下载打开HbuilderX,注意这里下载app开发版的。然后创建新项目,创建的时候选择uni-app默认模板 2. 下载vant组件 vant的GitHub下载地址下载完成后解压,然后在项目更目录下创建文件夹wxcomponents,注意这里的wxcomponents目录级别和pages在同一级别,然后再该目录下创建vant目录。回到刚才解压的vant目录,找到dist文件夹,把它复制到vant目录下 3. 引用vant组件 3.1 首先在app.vue文件内添加

wangmj518的专栏 2万+

《uni-app》npm详解及在uni-app中对npm的支持

本文难度属于:初级,通过本文你可以大致了解以下几个知识点: 什么是NPM,它是做什么的;uni-app中如何使用NPM这个包管理工具;实际项目中如何通过npm按照uView这个UI库;

Oliver尹的博客 1万+

uni-app使用uni-ui

1.安装uni-ui npm install @dcloudio/uni-ui 2.引入组件 import {uniBadge} from '@dcloudio/uni-ui' //import uniBadge from '@dcloudio/uni-ui/lib/uni-badge/uni-badge.vue' //也可使用此方式引入组件 export default { c...

qq_41093007的博客 4228
上一篇: js部分面试题
下一篇: jquery面试题
hxyfdsal
博客等级 码龄6年 17粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值