uni-app基础知识介绍

uni-app的基础知识介绍

1、在第一次将代码运行在微信开发者工具的时候,应该进行如下的配置:

(1)将微信开发者工具路径进行配置;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lbyk5Jw2-1679025184071)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\1679024954729.png)]

(2)在微信开发者工具中的设置里面==》安全设置==》服务端口打开;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3IhwQH3-1679025184073)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\1679024983105.png)]

2、全局配置:

(1)在pages.json里面有个gloablStyle进行配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EVYYEIwo-1679025184073)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210503194138648.png)]

(2)属性有:

属性 类型 默认值 描述
navigationBarBackgroundColor HexColor #F7F7F7 导航栏背景颜色(同状态栏背景色)
navigationBarTextStyle String white 导航栏标题颜色及状态栏前景颜色,仅支持black/white
navigationBarTitleText String 导航栏标题文字内容
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle String dark 下拉Loading的样式,仅支持dark/light
enablePullDownRefresh Boolean false 是否开启下拉刷新
onReachBottomDistance Number 50 页面上拉触底事件触发时距离页面底部距离,单位仅支持px
3、页面的创建

在pages中去创建页面,在这里我们需要注意的是:在创建了页面之后,必须将此页面在全局中的pages.json中pages项进行页面路径配置;

"pages": [ //pages数组中第一项表示应用启动页
	{
	    "path" : "pages/message/message",
	    //在这个里面我们可以针对当前页面的一些基础样式进行设置,当前页面的设置会覆盖掉全局的设置
	    "style":{
			"navigationBarTitleText":"信息页面",
			"navigationBarBackgroundColor":"#4CD964",
			//我们在这里给h5单独设置
			"h5":{
				"pullToRefresh":{
					"color":"#007AFF"
				}
			}
	    } 
	},
	{
		"path": "pages/index/index"
	}  
]
4、tabBar 页面配置

属性说明:

属性 类型 必填 默认值 描述 平台差异说明
color HexColor tab上面文字默认颜色
selectedColor HexColor tab上的文字选中时的颜色
backgroundColor String tab的背景色
borderStyle String black tabBar上边框的颜色,仅支持black/white App2.3.4+支持其他颜色值
list Array tab的列表,最少2个,最多5个tab
position String bttom 可选值bottom、top top仅微信小程序支持

在list数组里面所拥有的配置项:

pagePath:页面路径,必须在pages中先定义

text:tab上按钮文字

iconPath:图片路径,icon大小限制为40kb,建议尺寸为81*81px,当position为top时,此参数无效,不支持网络图片,不支持字体图标

selectedIconPath:选中时的图片路径,icon大小限制为40kb,建议尺寸为81*81px,当position为top时,此参数无效

5、condition启动模式配置

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

属性说明:

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

list说明:

属性 类型 是否必填 描述
name String 启动模式名称
path String 启动页面路径
query String 启动参数,可在页面的onload函数里获得
pages.json
{
 "condition": {
    "current" : 0,
    "list": [
        {
        "name": '详情页面',
        "path":"pages/detail/detail",
        "query":"id=80"
        }
      ]
    }
}
6、组件的基本使用

(1)text文本组件的用法

属性 类型 默认值 必填 说明
selectable boolean false 文本是否可选
space string 显示连续空格,可选线束:ensp/emsp/nbsp
decode boolean false 是否解码

text 组件相当于行内标签,在同一行显示

(2)view视图容器组件的用法(类型于div)

属性 类型 默认值 必填 说明
hover-class string none 指定按下去的样式类,当hover-calss="none"时,没有点击态效果
hover-stop-propagation boolean false 指定是否阻止本节点的祖先节点出现点击态
hover-start-time number 50 按住后多久出现点击态,单位是毫秒
hover-stay-time number 400 手指松开后点击态保留时间,单位毫秒

(3)buttom按钮组件的用法

属性名 类型 默认值 说明
size string default 按钮大小
type string default 按钮的样式类型
plain Boolean false 背景色透明
disabled Boolean false 是否按钮
loading Boolean false 是否是带loading图标

(4)image组件的用法

7、uni-app中的样式

(1)rpx即响应式px,一种根据屏幕宽度自适应的动态单位,以750px宽的屏幕为基准,750rpx恰好为屏幕宽度,屏幕变宽,rpx实际显示效果会等比放大;

(2)使用@import语句可以引入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;分号表示语句结束;

(3)支持基本常用的选择器class/id/element等;

(4)在uini-app里面不能使用*选择器;

(5)page相当于body的节点;

(6)定义在App.vue中的样式为全局样式,作用于每一个页面,在pages目录下的vue文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖App.vue中相同的选择器;

(7)uni-app支持使用字体图标,使用方式与普通web项目相同,需要注意一下几点:

字体文件大小40kb,uni-app会自动将其转化为base64格式;

字体文字大小等于40kb,需开发者自己转化,否则试用期不生效;

字体文字的引入路径推荐使用以~@开头的绝对路径

@font-face{
    font-family:test-icon;
    src:url("~@/static/iconfont.ttf")
}
8、uni-app中的数据绑定

用法和vue中的相同;

9、uni-app中的事件绑定

用法同vue中的相同;

10、uni-app中的生命周期
属性名 说明
onLaunch 当uni-app初始化完成时触发(全局只触发一次)
onShow 当uini-app启动,或者从后台进入前台显示
onHide 当uini-app从前台进入后台
onError 当uini-app报错时触发

页面的生命周期

函数名 说明
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参)
onPullDownRefresh 监听用户下拉动作,一般用于下拉刷新
onReachBottom 页面滚动到底部的事件,常用于下拉下一页数据
onShow 监听页面显示,页面每次出现在屏幕上都触发
onReady 监听页面初次渲染完成
onHide 监听页面隐藏
onUnload 监听页面卸载
11、下拉刷新

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

第一种:需要在pages.json里,找到当前页面的pages节点,并且在style选项中开启enablePullDownRefresh

第二种:通过调用uni.startPullDownRefresh方式开启下拉刷新

(2)监听下拉刷新:

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

(3)关闭下拉刷新

uni.stopPullDownRefresh,停止当前页面下拉刷新

代码示例:

onPullDownRefresh() {
	console.log('下拉事件触发了');
	//当数据已经更新之后,不希望还是一种下拉刷新的状态,所以在这里我们需要将下拉刷新取消掉,在此我们需要调用停止下拉刷新的函数,因为我们的数据在一瞬间进行改变的,所以这个改变之后停止下拉刷新我们的效果并不是很明显,所以在这个时候我们可以添加一个定时器
	setTimeout(()=>{
	this.list = ['前端课程','Java','UI课程','大数据课程'];
	uni.stopPullDownRefresh();
	},2000)
}
12、网络请求

在uni中可以调用uni.request方法进行请求网络

需要注意的是:在小程序中网络相关的API在使用前需要配置域名白名单;

13、数据缓存

uni.setStorage

uni.setStorageSync

uni.getStorage

uni.getStorageSync

uni.removeStorage

uni.removeStorageSync

14、上传图片、预览图片

(1)上传图片

uni.chooseImage方法从本地相册选择图片或使用相机拍照

(2)预览图片

uni.previewImage(object)这个方法可以预览图片

15、条件注释实现跨段兼容

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

写法:以#ifdef加平台标识开头,以#endif结尾;

平台标识

平台
APP-PLU5 5+APP
H5 H5
MP-WEIXIN 微信小程序
MP-ALIPAY 支付宝小程序
MP-BAIDU 百度小程序
MP-TOUTIAO 头条小程序
MP-QQ QQ小程序
MP 微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序

代码案例:

<!-- #ifdef H5 -->
<view >
	我只希望在H5页面中可以被看到
</view>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view >
	我只希望在微信小程序被看到
</view>
<!-- #endif -->

onLoad() {
	// #ifdef H5
    console.log('我希望在H5中打印')
    // #endif
    // #ifdef MP_WEINXIN
    console.log('我希望在微信小程序中打印')
    // #endif
}

<styel>
 	/* #ifdef H5*/
    view {
		color: white;
    }
	/* #endif */
 </style>
16、两种方式导航跳转和传参

声明式导航:

<navigator url="/pages/detail/detail?id=80">跳转至详情页面</navigator>
<!-- 当我们要跳转到tabbar页面的时候,需要添加open-type -->
<navigator url="/pages/index/index" open-type="switchTab">跳转至首页</navigator>
<navigator url="/pages/index/index" open-type="redirect">跳转至详情页面</navigator>

详情页面的接收:
onLoad(options){
    console.log(options)
}

编程式导航:

<button type="default" @click="toDetail">跳转到详情页面</button>
<button type="default" @click="toIndex">跳转到首页</button>
methods:{
	toDetail(){
		uni.navigateTo({
			url:"/pages/detail/detail?id=80&age=90"
		})
	},
	toIndex(){
		 uni.switchTab({
			url:"/pages/index/index"
			})
		}
	}

详情页面的接收:
onLoad(options){
    console.log(options)
}
17、组件的创建使用和组件的生命周期函数

uni里面的使用和vue一致

18、组件的通讯

uni里面的使用和vue一致

19、uni-ui组件库

你可能感兴趣的:(uni-app,json,前端)