uni-app組件
scroll-view
<button @click="goTop">回到頂部</button>
<button @click="showLoad">彈窗</button>
<scroll-view scroll-y class="scroll" :scroll-top="scrollTop" @scroll="getScrollTop">
<view id="demo1" class="scroll-item bg-blue">A</view>
<view id="demo2" class="scroll-item bg-red">B</view>
<view id="demo3" class="scroll-item bg-green">C</view>
</scroll-view>
回到頂部
getScrollTop(e) {
console.log(e.detail.scrollTop);
//方案一
this.old.scrollTop = e.detail.scrollTop
//方案二
// this.scrollTop = e.detail.scrollTop
},
goTop() {
//方案一
this.scrollTop = this.old.scrollTop;
this.$nextTick(function() {
this.scrollTop = 0
})
//方案二
// this.scrollTop = 0;
}
swiper
<swiper class="swiper" indicator-dots indicator-color="pink" indicator-active-color="red" autoplay current="1"
interval="3000" duration="1000" circular>
<swiper-item class="swiper-item bg-blue">A</swiper-item>
<swiper-item class="swiper-item bg-yellow">B</swiper-item>
<swiper-item class="swiper-item bg-green">C</swiper-item>
</swiper>
text 文本
屬性 | 說明 |
---|---|
selectable | 是否選中 |
decode | 解碼 例如:< ,> 等 |
space | 是否顯示空格 |
space的參數(shù)值
參數(shù) | 說明 | |
---|---|---|
emsp | 中文字符空格大小 | |
ensp | 中文字符空格一半大小 | |
nbsp | 根據(jù)字體設(shè)置的空格大小 |
<text selectable decode space="nbsp">{{msg}}</text>
button 按鈕
<button plain disabled type="primary">我是按鈕</button>
<button loading type="default">我是按鈕</button>
<button type="warn">我是按鈕</button>
<button size="mini" type="primary">我是按鈕</button>
<button size="mini" type="primary">我是按鈕</button>
input 輸入框
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
value | String | 輸入框的初始內(nèi)容 | |
type | String | text | input 的類型 |
password | Boolean | false | 是否是密碼類型 |
placeholder | String | 輸入框為空時占位符 | |
disabled | Boolean | false | 是否禁用 |
maxlength | Number | 140 | 最大輸入長度,設(shè)置為 -1 的時候不限制最大長度 |
type的有效值
值 | 說明 |
---|---|
text | 文本輸入鍵盤 |
number | 數(shù)字輸入鍵盤 |
idcard | 身份證輸入鍵盤 |
digit | 帶小數(shù)點的數(shù)字鍵盤 |
tel | 電話輸入鍵盤 |
safe-password | 密碼安全輸入鍵盤 |
nickname | 昵稱輸入鍵盤 |
<!-- 數(shù)據(jù)綁定 -->
<!-- <input type="text" :value="msg" /> -->
<input type="text" v-model="msg" />
<!-- 密碼框 -->
<input type="text" password placeholder="請輸入密碼" />
<input type="text" placeholder="請輸入密碼" />
radio 單選
屬性名 | 類型 | 說明 |
---|---|---|
value | String | 標(biāo)識。當(dāng)選中時,change 事件會攜帶選中的 value |
checked | Boolean | 當(dāng)前是否選中 |
disabled | Boolean | 是否禁用 |
color | Color | radio的顏色,同css的color |
單項選擇器,內(nèi)部由多個 <radio>
組成。通過把多個radio
包裹在一個radio-group
下,實現(xiàn)這些radio
的單選。
<radio-group @change="onSelect">
<radio checked value="1"></radio> 吃
<radio color="red" value="2"></radio> 喝
<radio disabled value="3"></radio> 嫖
<radio value="4"></radio> 賭
</radio-group>
checkbox 多選
屬性名 | 類型 | 說明 |
---|---|---|
value | String |
<checkbox> 標(biāo)識,選中時觸發(fā) <checkbox> 的 change 事件,并攜帶 <checkbox> 的 value。 |
disabled | Boolean | 是否禁用 |
checked | Boolean | 當(dāng)前是否選中,可用來設(shè)置默認(rèn)選中 |
color | Color | checkbox的顏色,同css的color |
checkbox-group
多項選擇器,內(nèi)部由多個 checkbox 組成。
<checkbox-group>
<checkbox checked color="red" value="1">籃球</checkbox>
<checkbox disabled value="2">足球</checkbox>
<checkbox color="rgba(120,0,255,0.5)" value="3">網(wǎng)球</checkbox>
</checkbox-group>
picker 選擇器
從底部彈起的滾動選擇器。支持五種選擇器,通過mode來區(qū)分,分別是普通選擇器selector
,多列選擇器multiSelector
,時間選擇器time
,日期選擇器date
,省市區(qū)選擇器region
,默認(rèn)是普通選擇器。
1.普通選擇器selector
屬性名 | 類型 | 說明 |
---|---|---|
range | Array / Array<Object>
|
mode為 selector 或 multiSelector 時,range 有效 |
range-key | String | 當(dāng) range 是一個 Array<Object> 時,通過 range-key 來指定 Object 中 key 的值作為選擇器顯示內(nèi)容 |
value | Number | value 的值表示選擇了 range 中的第幾個(下標(biāo)從 0 開始) |
disabled | Boolean | 是否禁用 |
@change | EventHandle | value 改變時觸發(fā) change 事件,event.detail = {value: value} |
@cancel | EventHandle | 取消選擇或點遮罩層收起 picker 時觸發(fā) |
html
<!-- 單列 -->
<picker @change="bindPickChange" range-key="name" :range="array" :value="index">
<view style="padding: 20rpx; ">
{{array[index].name}}
</view>
</picker>
js
//數(shù)據(jù)
index: 0,
array: [{
name: "中國"
}, {
name: "美國"
}, {
name: "俄羅斯"
}]
//函數(shù)
bindPickChange(e) {
this.index = e.detail.value
// 刷新
this.$forceUpdate()
},
2.多列選擇器multiSelector
屬性名 | 類型 | 說明 |
---|---|---|
range | 二維 Array / 二維 Array<Object>
|
mode為 selector 或 multiSelector 時,range 有效。二維數(shù)組,長度表示多少列,數(shù)組的每項表示每列的數(shù)據(jù),如[[“a”,“b”], [“c”,“d”]] |
range-key | String | 當(dāng) range 是一個 Array<Object> 時,通過 range-key 來指定 Object 中 key 的值作為選擇器顯示內(nèi)容 |
value | Number | value 的值表示選擇了 range 中的第幾個(下標(biāo)從 0 開始) |
disabled | Boolean | 是否禁用 |
@change | EventHandle | value 改變時觸發(fā) change 事件,event.detail = {value: value} |
@columnchange | EventHandle | 某一列的值改變時觸發(fā) columnchange 事件,event.detail = {column: column, value: value},column 的值表示改變了第幾列(下標(biāo)從0開始),value 的值表示變更值的下標(biāo) |
@cancel | EventHandle | 取消選擇或點遮罩層收起 picker 時觸發(fā) |
html
<!-- 多列 -->
<picker @change="bindPickChange" mode="multiSelector" @columnchange="bindColumnChange" :value="multIndex"
:range="multArray">
<view style="padding: 20rpx; color: blue;">
{{multArray[0][multIndex[0]]}} -
{{multArray[1][multIndex[1]]}} -
{{multArray[2][multIndex[2]]}}
</view>
</picker>
js
multArray: [
['亞洲', '歐洲', '美洲'],
['中國', '韓國', '日本'],
['北京', '上海', '西安']
],
multIndex: [0, 0, 0],
//多列
bindColumnChange(e) {
this.multIndex[e.detail.column] = e.detail.value
},
bindPickChange(e) {
this.index = e.detail.value
// 刷新
this.$forceUpdate()
},
3.時間選擇器time
屬性名 | 類型 | 說明 |
---|---|---|
value | String | 表示選中的時間,格式為"hh:mm" |
start | String | 表示有效時間范圍的開始,字符串格式為"hh:mm" |
end | String | 表示有效時間范圍的結(jié)束,字符串格式為"hh:mm" |
@change | EventHandle | value 改變時觸發(fā) change 事件,event.detail = {value: value} |
@cancel | EventHandle | 取消選擇時觸發(fā) |
disabled | Boolean | 是否禁用 |
html
<!-- 時間 -->
<picker mode="time" :range="time" @change="bindTimeChange" :start="minTime" :end="maxTime">
<view style="padding: 20rpx; color: yellowgreen;">
{{time}}
</view>
</picker>
js
//時間
time: "11:16",
minTime: "00:00",
maxTime: "23:59",
//時間
bindTimeChange(e) {
this.time = e.detail.value
},
4.日期選擇器date
屬性名 | 類型 | 說明 |
---|---|---|
value | String | 表示選中的日期,格式為"YYYY-MM-DD" |
start | String | 表示有效日期范圍的開始,字符串格式為"YYYY-MM-DD" |
end | String | 表示有效日期范圍的結(jié)束,字符串格式為"YYYY-MM-DD" |
fields | String | 有效值 year、month、day,表示選擇器的粒度,默認(rèn)為 day,App 端未配置此項時使用系統(tǒng) UI |
@change | EventHandle | value 改變時觸發(fā) change 事件,event.detail = {value: value} |
@cancel | EventHandle | 取消選擇時觸發(fā) |
disabled | Boolean | 是否禁用 |
html
<!-- 日期 -->
<picker mode="date" :range="date" @change="bindDateChange" :start="startDate" :end="endDate">
<view style="padding: 20rpx; color: yellowgreen;">
{{date}}
</view>
</picker>
js
//日期
date: getDate({
format: true
}),
startDate: getDate('start'),
endDate: getDate('end')
//日期
bindDateChange(e) {
this.date = e.detail.value
},
5.省市區(qū)選擇器region
屬性名 | 類型 | 說明 |
---|---|---|
value | Array | 表示選中的省市區(qū),默認(rèn)選中每一列的第一個值 |
custom-item | String | 可為每一列的頂部添加一個自定義的項 |
@change | EventHandle | value 改變時觸發(fā) change 事件,event.detail = {value: value} |
@cancel | EventHandle | 取消選擇時觸發(fā)(快手小程序不支持) |
disabled | Boolean | 是否禁用(快手小程序不支持) |
slider 滑塊
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
min | Number | 0 | 最小值 |
max | Number | 100 | 最大值 |
step | Number | 1 | 步長,取值必須大于 0,并且可被(max - min)整除 |
disabled | Boolean | false | 是否禁用 |
value | Number | 0 | 當(dāng)前取值 |
activeColor | Color | 各個平臺不同,詳見下 | 滑塊左側(cè)已選擇部分的線條顏色 |
backgroundColor | Color | #e9e9e9 | 滑塊右側(cè)背景條的顏色 |
block-size | Number | 28 | 滑塊的大小,取值范圍為 12 - 28 |
block-color | Color | #ffffff | 滑塊的顏色 |
show-value | Boolean | false | 是否顯示當(dāng)前 value |
@change | EventHandle | 完成一次拖動后觸發(fā)的事件,event.detail = {value: value} | |
@changing | EventHandle | 拖動過程中觸發(fā)的事件,event.detail = {value: value} |
html
<slider min="0" max="100" step="1" :value="sliderNum" activeColor="yellow" backgroundColor="red" @changing="setSlider"></slider>
js
setSlider(e) {
this.sliderNum = e.detail.value
},
textarea 文本域
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
value | String | 輸入框的內(nèi)容 | |
placeholder | String | 輸入框為空時占位符 | |
placeholder-style | String | 指定 placeholder 的樣式 | |
placeholder-class | String | textarea-placeholder | 指定 placeholder 的樣式類,注意頁面或組件的style中寫了scoped時,需要在類名前寫/deep/ |
disabled | Boolean | false | 是否禁用 |
maxlength | Number | 140 | 最大輸入長度,設(shè)置為 -1 的時候不限制最大長度 |
auto-height | Boolean | false | 是否自動增高,設(shè)置auto-height時,style.height不生效 |
<textarea maxlength="10" placeholder="請輸入內(nèi)容" auto-height></textarea>
彈窗
提示框 uni.showLoading
uni.showLoading
一般不自動關(guān)閉,需要調(diào)用uni.hideLoading()
關(guān)閉
//提示框
uni.showLoading({
title:"加載中...",
mask:true
})
setTimeout(function() {
uni.hideLoading();
}, 1000);
提示彈窗 uni.showToast
有多種icon,例如:success 、error、fail等
//提示彈窗
uni.showToast({
title:'成功提示',
duration: 2000, //持續(xù)時間
icon:"success"
})
//圖標(biāo)提示
uni.showToast({
title: '查詢中',
image:'../../static/logo.png',
duration: 2000
})
確定取消框 uni.showModal
可以同時有確定和取消按鈕
//確定取消框
uni.showModal({
title:"提示",
content:"是否刪除?",
confirmText:'刪除',
confirmColor: '#4cd964',
cancelText:'放棄',
cancelColor:'#dd524d',
success:(e) =>{
if(e.confirm){
console.log("確定");
}else{
console.log("取消");
}
}
})
列表提示框 uni.showActionSheet
從底部向上彈出操作菜單
// 列表提示框
uni.showActionSheet({
itemList:['今天','明天','昨天'], //數(shù)組長度最大為6個
itemColor:'#f0ad4e',
success(res) {
console.log(res.tapIndex); //用戶點擊的按鈕,從上到下的順序,從0開始
},
fail() {
console.log("取消");
}
})
數(shù)據(jù)緩存
同步緩存
//同步緩存
uni.setStorageSync("Storage","jixin") //設(shè)置key value 存儲
console.log(uni.getStorageSync("Storage")); //通過key 獲取value
uni.removeStorageSync("Storage"); //刪除某個key
uni.clearStorageSync(); //全部刪除
異步緩存
//設(shè)置key value 存儲
uni.setStorage({
key:"Storage",
data:"world",
success() {
console.log("=======異步緩存=======");
}
})
//通過key 獲取value
uni.getStorage({
key:"Storage",
success(res) {
console.log( res.data);
}
})
//刪除某個key
uni.removeStorage("Storage");
//全部刪除
uni.clearStorage();
獲取緩存數(shù)據(jù)
uni.getStorageInfo({
success(res) {
console.log(res.keys);
}
})
跳轉(zhuǎn)
navigator
標(biāo)簽跳轉(zhuǎn)
屬性名 | 類型 | 默認(rèn)值 | 說明 |
---|---|---|---|
url | String | 應(yīng)用內(nèi)的跳轉(zhuǎn)鏈接,值為相對路徑或絕對路徑,如:“…/first/first”,“/pages/first/first”,注意不能加 .vue 后綴 |
|
open-type | String | navigate | 跳轉(zhuǎn)方式 |
delta | Number | 當(dāng) open-type 為 ‘navigateBack’ 時有效,表示回退的層數(shù) | |
animation-type | String | pop-in/out | 當(dāng) open-type 為 navigate、navigateBack 時有效,窗口的顯示/關(guān)閉動畫效果。(僅限App使用) |
animation-duration | Number | 300 | 當(dāng) open-type 為 navigate、navigateBack 時有效,窗口顯示/關(guān)閉動畫的持續(xù)時間。(僅限App使用) |
open-type的參數(shù)
值 | 說明 |
---|---|
navigate | 對應(yīng) uni.navigateTo 的功能 |
redirect | 對應(yīng) uni.redirectTo 的功能 |
switchTab | 對應(yīng) uni.switchTab 的功能 |
reLaunch | 對應(yīng) uni.reLaunch 的功能 |
navigateBack | 對應(yīng) uni.navigateBack 的功能 |
exit | 退出小程序,target="miniProgram"時生效 |
<navigator url="/pages/index/index" open-type="navigate">去非tabBar頁面</navigator>
<navigator url="/pages/home/home" open-type="switchTab">去tabBar頁面</navigator>
編程式跳轉(zhuǎn)
1.uni.navigateTo
保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面,使用uni.navigateBack
可以返回到原頁面。
參數(shù) | 類型 | 說明 |
---|---|---|
url | String | 需要跳轉(zhuǎn)的應(yīng)用內(nèi)非 tabBar 的頁面的路徑 , 路徑后可以帶參數(shù)。 |
success | Function | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
參數(shù)與路徑之間使用?
分隔,參數(shù)鍵與參數(shù)值用=相連,不同參數(shù)用&分隔;path為下一個頁面的路徑,下一個頁面的onLoad函數(shù)可得到傳遞的參數(shù)
uni.navigateTo({
url: 'pages/main/main?id=1001&name=zhangsan',
success: (res) => {
console.log("跳轉(zhuǎn)Main", res);
}
})
2.uni.redirectTo
關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面。
同上述uni.navigateTo
的參數(shù)列表
uni.redirectTo({
url: 'pages/main/main?id=1001&name=zhangsan
});
3.uni.reLaunch
關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個頁面。
同上述uni.navigateTo
的參數(shù)列表
uni.reLaunch({
url: 'pages/main/main?id=1001&name=zhangsan'
});
4.uni.switchTab
跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其他所有非 tabBar 頁面。
參數(shù) | 類型 | 說明 |
---|---|---|
url | String | 需要跳轉(zhuǎn)的 tabBar 頁面的路徑(需在 pages.json 的 tabBar 字段定義的頁面),路徑后不能帶參數(shù) |
success | Function | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
uni.switchTab({
url: '/pages/home/home'
});
5.uni.navigateBack文章來源:http://www.zghlxwxcb.cn/news/detail-800223.html
關(guān)閉當(dāng)前頁面,返回上一頁面或多級頁面。文章來源地址http://www.zghlxwxcb.cn/news/detail-800223.html
參數(shù) | 類型 | 說明 |
---|---|---|
delta | Number | 返回的頁面數(shù),如果 delta 大于現(xiàn)有頁面數(shù),則返回到首頁。 |
animationType | String | 窗口關(guān)閉的動畫效果 |
animationDuration | Number | 窗口關(guān)閉動畫的持續(xù)時間,單位為 ms |
success | Function | 接口調(diào)用成功的回調(diào)函數(shù) |
fail | Function | 接口調(diào)用失敗的回調(diào)函數(shù) |
complete | Function | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
uni.navigateBack({
delta: 1
});
到了這里,關(guān)于uni-app基礎(chǔ)詳解(組件、彈窗、數(shù)據(jù)緩存、頁面跳轉(zhuǎn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!