页面(page)、视图(view)、滚动视图(scroll-view)、文本(text)、富文本(rich-text)、图片(image)、输入框(input)、按钮(button)、导航器(navigator)、轮播(swiper)、单选按钮(radio-group/radio)、复选按钮(checkbox-group/checkbox)、拾取器(picker)、视频(video)、地图(map)、摄像头(camera)
图标(uni-icons)、宫格(uni-grid)、卡片(uni-card)、导航条(uni-navigation-bar)、简单输入框(uni-easyinput)、弹出式对话框(uni-popup)、日期格式化(uni-dateformat)、列表(uni-list)
③自定义组件:卡片(zh-card)、导航条(zh-navigation-bar)
①五种页面跳转方法
②四种消息弹出框
③异步请求
④客户端存储的设置/读取/删除/清空
第一组:整个应用级生命周期方法(App.vue):启动、显示、隐藏
第二组:页面级生命周期方法(pages):加载、显示、就绪、隐藏、卸载、滚动、滚动到底、下拉刷新
第三组:组件级生命周期方法(components):创建、挂载、更新、卸载
1、view
:最简单的容器组件,相当于HTML中的div
2、text
:最简单的文本组件,相当于HTML中的span
3、image
:用于展示图片的组件,类似于HTML中的img
①默认image的尺寸都是320*240
②默认情况下,修改图片的宽度,高度不会自动等比例缩放
③可以指定mode=“widthFix”,实现“宽度固定,高度自动等比例缩放”
4、input
:单行文本输入域
<input type="键盘类型" password="是否显示密码"/>
5、button
:按钮
6、navigator
:导航器、超链接,用于实现页面跳转
相对地址: <navigator url="../findpwd/findpwd"> 不带.vue
绝对地址: <navigator url="/pages/findpwd/findpwd"> 不带.vue
7、swiper
:轮播广告
8、picker
:数据拾取器,功能类似于HTML中的select/option
①内容绑定:
<text>{{表达式}}text>
②属性绑定:
<any v-bind:属性名="表达式"/>
<any :属性名="表达式"/>
③样式绑定:
④事件绑定:
<any v-on:click="处理方法"/>
<any @click="处理方法(实参列表)"/>
⑤双向数据绑定:
<input v-model="模型变量名"/>
⑥条件渲染:
⑦列表渲染:
<any v-for="(item, idx) in 数组" :key="idx"/>
1、uni-app支持的尺寸单位:em、vw/vh、%、px、rpx
2、多个页面或组件共享的样式变量编写在 uni.scss;
3、多个页面或组件共享的样式编写在 App.vue;
1、五种路由跳转方法
2、四种提示框
①吐司对话框 —— 用于简单的提醒,非重要事件的提示
uni.showToast( )
②模态对话框 —— 用于严重的提示,甚至必须作出选择的提示
uni.showModal( )
③加载中对话框 —— 提示操作正在进行中
uni.showLoading( ) / uni.hideLoading()
④动作清单对话框 —— 让用户选择要执行的动作
uni.showActionSheet( )
3、读写客户端数据存储
在客户端存储数据 —— 类似于localStorage.setItem(k, v):
uni.setStorage( key, value, success(){ } ) —— 异步保存
uni.setStorageSync( key, value ) —— 同步保存
读取客户端存储的数据 —— 类似于 let v = localStorage.getItem(k):
uni.getStorage( key, success(value){ } ) —— 异步读取
let value = uni.getStorageSync( key ) —— 同步读取
删除客户端存储的一个数据 —— 类似于 localStorage.removeItem(k):
uni.removeStorage( key, success(){ } ) —— 异步删除
uni.removeStorageSync( key ) —— 同步删除
删除客户端存储的所有数据 —— 类似于localStorage.clear():
uni.clearStorage( success( ){ } ) —— 异步删除
uni.clearStorageSync( ) —— 同步删除
4、getApp( )
:返回App.vue创建的全局App实例对象
uni-app使用uni.request()可以实现服务器端数据API的异步请求,编译后会转换为各平台的专有技术。uni.request( )的使用方法:
//没有请求主体的GET请求
let url = ""
let [err, res] = await uni.request({
url
})
if(err){ 处理请求错误 }
else { res.data就是响应消息主体 }
//有请求主体的POST请求
let url = ""
let [err, res] = await uni.request({
url,
method: 'POST', //请求方法
data: {k:v, ....} //请求主体
})
if(err){ 处理请求错误 }
else { res.data就是响应消息主体 }
onLaunch():应用程序启动,每个应用此方法只能调用一次
onShow():应用程序显示出来,可以多次调用
onHide():应用程序隐藏起来,可以多次调用
onLoad():页面加载完成,类似于组件的mounted,每个组件只挂载一次;一般用于异步请求页面需要的数据
onShow():页面显示出来,可以多次调用
onReady():页面准备就绪,第一次挂载完成后,进场动画执行完成,可供用户使用
onHide():页面隐藏起来,可以多次调用
onUnload():页面卸载了,类似于组件的destroyed;一般用于释放页面所占用的资源,例如:定时器、WebSocket....
onPageScroll():页面滚动了
onReachBottom():页面滚动到底部了
onPullDownRefresh():页面在顶部下拉刷新了
beforeCreate() / created()
beforeMount() / mounted()
beforeUpdate() / updated()
beforeDestroy() / destroyed()
父组件 => 子组件
//parent.vue
data: {age: 18}
<child :childAge="20" :childAge="age"/>
//child.vue
props: {
childAge: { type: Number, default:16, required: true }
}
<text>{{childAge}}text>
面试题:请问如何理解“Vue.js是单向数据流”这一概念?
父组件传递数据给子组件,子组件可以使用该数据,但是不能修改。
let s = '2022-08'
//计算该月份对应的开始时间
let startTime = new Date( s ).getTime( )
//计算该月份对应的结束时间
let endTime = new Date('2022', '08', 0).getTime( ) //该月最后一天的0点
let endTime = new Date('2022', '08').getTime( )-1 //该月最后一天的下一天0点
getTime() 获取时间戳