微信小程序开发一个小型商城(二、首页设计)
首先在pages/index/index这一层层目录当中就是对首页进行编辑的地方,先看一下预览图:自定义组件在最上面的一个是自定义组件,一个搜索栏。在pages同层级新建一个complates文件夹,用于存放自定义组件,随后可以在微信开发者工具当中右键complates这个文件夹,选择新建SearchInput目录后,右键选择这个目录后选择新建complates就会看到在这个目录下会生成其对...
首先在pages/index/index这一层层目录当中就是对首页进行编辑的地方,先看一下预览图:
自定义组件
在最上面的一个是自定义组件,一个搜索栏。在pages同层级新建一个complates文件夹,用于存放自定义组件,随后可以在微信开发者工具当中右键complates这个文件夹,选择新建SearchInput目录后,右键选择这个目录后选择新建complates就会看到在这个目录下会生成其对应的js wxss json wxml文件。
随后我们对SearchInput.wxml
文件进行编辑,给其加上一个navigator标签,该标签将会跳转到搜索界面,代码如下所示
<view class="search_input">
<navigator url="/pages/search/index" open-type="navigate">
搜索
</navigator>
</view>
相同的道理,在定义好对应的标签后,对其wxss文件进行样式编辑,在微信小程序当中,通常使用less文件进行编辑,所以我们直接对wxss文件进行重命名为less,加上属性
.search_input{
height: 90rpx;
padding: 10rpx;
background-color: var(--themeColor); //使用var()可以获取到全局样式文件当中的属性值
navigator{
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
border-radius: 15rpx; /*加上边框圆角*/
color: #666;
}
}
自定义组件写好后,如果要使用自定义组件,需要在对应的json文件当中进行注册,打开index/index.json
文件进行编辑。如下所示:声明组件+给页面加上标题
{
"usingComponents": {
"SearchInput":"../../components/Searchinput/Searchinput"
},
"navigationBarTitleText": "首页"
}
最后在index.wxml文件当中进行调用即可:在这里之后就可以看到在界面当中会出现一个搜索栏。
<view class="pyg_index">
<SearchInput></SearchInput>
</view>
轮播图组件
轮播图的代码可以直接搬过来进行微调就好了:参考这一篇,单击跳转
在这里面有对对象进行渲染的值也就不删除了,测试的时候将src进行替换掉以及把wx:for系列,navigator的url值 删除即可。
<view class="index_swiper">
<swiper autoplay interval="1000" indicator-dots="true"
indicator-color="green" indicator-active-color="blue">
<swiper-item wx:for="{{swiperList}}" wx:key="goods_id">
<navigator url="{{item.navigator_url}}">
<!--设置图片高度自适应 宽度100%-->
<image mode="widthFix" src="{{item.image_src}}"></image>
</navigator>
</swiper-item>
</swiper>
</view>
给标签加上样式:以免测试的图片大小导致不能完全填满屏幕
.index_swiper{
swiper{
width: 750rpx;
height: 340rpx;
image{
width: 100%;
}
}
}
导航栏组件
这里的导航栏其实就是将4个小的view标签进行排列到同一层。在以下代码当中因为是通过渲染的值,所以效果到现在还不是很明确。
<view class="index_cate">
<navigator wx:for="{{catesList}}" wx:key="name" url="/pages/category/index" open-type="switchTab">
<image src="{{item.image_src}}" mode="widthFix" />
</navigator>
</view>
加上样式,使得几个navigator标签处于同一行当中,并且加上左右间距。
.index_cate{
display: flex;
navigator{
flex: 1;
padding: 20rpx;
image{
width: 100%;
}
}
}
下方图片组合内容
定义好静态标签,三层嵌套,
<view class="index_floor">
<view class="floor_group" wx:for="{{floorList}}"
wx:for-item="item1" wx:for-index="index1" wx:key="floor_title">
<view class="floor_title"> <!--标题-->
<image src="{{item1.floor_title.image_src}}" mode="widthFix" >
</image>
</view>
<view class="floor_list"><!--内容-->
<navigator
wx:for="{{item1.product_list}}"
wx:for-item="item2"
wx:for-index="index2"
wx:key="name"
url="{{item2.navigator_url}}">
<image src="{{item2.image_src}}"
mode="{{index2===0?'widthFix':'scaleToFill'}}" />
</navigator>
</view>
</view>
</view>
增加样式,使得图片呈现两行三列,其中第一列占俩行的效果,以及各个图片之间加上间距padding
.index_floor{
.floor_group{
.floor_title{
padding: 10rpx 0;
image{
width: 100%;
}
}
.floor_list{
//清除浮动
overflow: hidden;
navigator{
float: left;
width: 33.33%;
/*后四个图片的超链接*/
&:nth-last-child(-n+4){
height: 33.33vw*386/232/2;
border-left:10rpx solid #fff;
}
&:nth-child(2),&:nth-child(3){
border-bottom: 10px solid #fff;
}
image{
width: 100%;
height: 100%;
}}}}}
页面渲染
在所有的静态页面都编辑完成后就是渲染页面当中的数据了。在index,js文件当中进行编辑,首先在data当中定义三个数组变量。分别对应上方的三大块静态页面渲染的对象
//轮播图数组
swiperList: [],
//导航数组
catesList:[],
//楼层数据
floorList:[]
随后就需要发送异步请求获取数据了,在该网址下,https://www.showdoc.cc/128719739414963?page_id=2513235043485226分别对应了三个网址接口。使用以下代码发送请求获取数据,发送三条请求,其中使用不同的url即对应不同的值(setData )。最后在APPdata当中可以查看变量数组的值,appdata的值如下所示:
var reqTask = wx.request({
url: 'https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata',
success: (result) => {
console.log(result)
this.setData({
swiperList:result.data.message
})
}
});
在这里需要在微信开发者工具中的详情,勾选不检验合法域名,如下图所示:
或者在微信公众平台当中添加合法域名,具体操作如下图所示:开发= => 开发设置 = => 服务器域名 ==> 添加域名 https://api-hmugo-web.itheima.net
下一篇:微信小程序开发一个小型商城(三、商品分类设计)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)