uni-app
1.腳手架安裝項目
npm install -g @vue/cli
vue create -p dcloudio/uni-preset-vue my-app
cd my-app
npm run dev:mp-weixin
小程式工具導入項目,注意:是mp-weixin的文件夾
2.樣式與sass
width:750rpx //小程式的單位,相當於螢幕的寬度 width:100vw //H5的單位,相當於螢幕的寬度 width:100vh //H5的單位,相當於螢幕的高度 npm install sass-loader node-sass <style lang="scss"> uni.scss文件中定義好的樣式可以直接cv大法使用
3.新增頁
"pages": [ //pages數組中第一項表示應用啟動頁,參考://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
},
{
"path": "pages/index2/index2",
"style": {
"navigationBarTitleText": "數據展示" //標題改變
}
}
]
放在第一就是首頁顯示了,之後創建頁面需要在pages.json引入
4.條件編譯
v-if顯示或隱藏,不適合做頻繁的切換顯示
v-show顯示或隱藏,適合頻繁的·切換顯示
true的時候就是顯示,fasle就是隱藏
v-if隱藏時是直接刪除這個標籤的
v-show隱藏式通過樣式隱藏這個標籤的
5.計算屬性
加工用法
<template> <view class="content"> <view>{{money}}</view> //10000 <view>{{nomoney}}</view> //¥10000 </view> </template> export default { data () { return { money: 10000 } }, computed: { nomoney () { return '¥' + this.money } } }
過濾用法
<template> <view class="content"> <view v-for="(item, index) in list" :key="index"> <view>ID:{{item.id}};姓名:{{item.name}};年齡:{{item.age}}</view> //正常數組遍歷 </view> <view v-for="(item, index) in filterlist" :key="index"> <view>ID:{{item.id}};姓名:{{item.name}};年齡:{{item.age}}</view> //過濾後數組遍歷 </view> </view> </template> export default { data () { return { list: [ { id:0, name: '張三', age: 19 }, { id:1, name: '李四', age: 199 }, { id:2, name: '牛五', age: 1999 } ] } }, computed: { filterlist () { return this.list.filter(v => v.id <= 0) //只提取id<=0滿足條件的 } } }
5.方法傳參
<template> <view class="content"> <view data-index='11' @click="hander(1, $event)">點我試試1</view> //¥event固定寫法 <view data-index='22' @click="hander(2, $event)">點我試試2</view> </view> </template> <script> export default { methods: { hander (index, event) { console.log(index) //獲取到直接通過函數傳參的值 console.log(event) //獲取到不知道是什麼的一個對象,但我們要的值藏在這裡面 console.log(event.currentTarget.dataset.index) //獲取到標籤自定義屬性data-index的值 } } } </script>
6.組件
import 組件 from @/components/組件
@絕對路徑
跟Vue用法是一樣的,props父傳子參數和$emit子傳父參數,
$emit用法:子組件觸發事件發出,父組件監聽事件接收
流程:子組件內部@click="funciton" funciton(){ this.$emit('自定義事件',要傳遞的參數) }
父組件內部@自定義事件="funciton2" funciton2(e){ this.data = e} //e就是傳遞過來的參數
7.全局數據
App.vue文件中 <script> export default { onLaunch: function() { console.log('App Launch') }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') }, globalData: { //定義全局數據 base: 'www.360.com' } } </script> 調用數據的頁面 <script> export default { methods: { hander () { getApp().globalData.base //調用全局數據,getApp()固定函數 } } } </script>
還有一種方法就是main.js文件內定義原型,this. 調用
8.插槽
先在組件內使用slot佔位符,之後在組件標籤內就可以加入想要的標籤了 <my> <slot></slot> </my>
9.生命周期
常用的幾個生命周期
全局App中,onLaunch表示應用啟動時
頁面中,使用onLoad頁面載入完畢;onShow頁面顯示時
組件中,mounted組件掛載完畢時