uni-app
首页开发以及组件uni-app
中的基本组件和微信小程序中的差不多。更适合在手机端的开发。
prolist
在pages
的同级目录下新建一个文件夹components
,然后在里面新建一个prolist
的文件夹,里面新建prolist.vue
,在prolist.vue
中写上自定义内容可以在home.vue
中直接引用,不需要导入操作(详见easycom)。如下图:
如果还有其他自定义组件,就按照格式在
components
文件夹下先新建一个组件名的文件夹然后在写vue
文件。
swiper
轮播图swiper的格式为:
...
当然还可以对照轮播图组件的属性表给容器添加属性:
图片懒加载其实就是当一个很长的页面中有许多图片资源时,如果等待全部图片加载完再显示页面可能会很慢,因此在有一些页面暂时没有滑动到的地方的图片先不加载,等往下滑动到了再加载。
对于微信小程序中的一些组件属性的格式基本为:
xxx=“{{...}}”
,但是在uni-app
中写的是vue语法,当要绑定的是值是变量时,所以格式要变换为绑定属性的格式,即:xxx=“...”
。例如上面的:lazy-load="true"
,对于lazy-load
它的值是boolean
类型,属于变量;而对于mode
,widthFix
只是它特定的一个值而已,所以不用加冒号。
uni.request
在整个目录下新建utils
文件夹,里面新建一个index.js
文件,作为工具类:
const baseUrl = "http://daxun.kuboy.top/api" //设置基本地址
export function request(options) {
const {url, method, data, header} = options
uni.showLoading({
title:'加载中'
});
return new Promise ((resolve,reject)=>{
uni.request({
url: baseUrl + url,
data: data || {},
method: method || 'GET',
header: header || {},
timeout: 6000, //设置请求超时时间
success: (res) => {
resolve(res)
},
fail: (err) => {
reject(err)
},
complete: () => {
uni.hideLoading()
}
})
})
}
在home.vue
中请求数据和微信小程序中的类似,要注意的是这里用的是vue
语法,与小程序还是有一点差别的。
注意:在设置图片路径的时候因为是动态获取数据,图片路径即为变量,所以需要用
:src="item.img"
。修改状态值时不需要再用到this.setData
,直接this.bannerlist = res.data.data
即可。
prolist
prolist
的基本样式
标题
因为之前说过按照components/prolist/prolist.vue
格式的组件不需要import
引入就可以直接使用。如果是其他格式的话需要引入,引入格式为:
home.vue
给子组件prolist.vue
传值首先在父组件home.vue
中请求数据并赋值给变量prolist
:
// :prolist="prolist" 中,后一个prolist是指在data中定义的并且请求完数据的prolist
// 前一个prolist是要传递给子组件的自定义属性
然后在子组件中用刚才传递过来的自定义属性prolist
来进行页面数据的渲染:
{{item.proname}}
...
在写图片路径的时候不要忘记加冒号:
:src="item.proimg"
页面生命周期
...
没有更多数据了
注意,
onPullDownRefresh ()
和onReachBottom ()
这两个方法都是和生命周期函数同级的,所在直接在标签下写即可。
首先在页面上写一个view
作为"按钮",然后绑定点击事件:
...
t" @click="backtop">
...