这篇文章将向大家介绍小程序控件之
view
开始我们的项目
创建一个工程,命名
wx4
,打开wx3,将里面的代码复制到wx4
中选中
pages
文件夹下的index
文件夹下的index.wxml
文件,给view
组件加入一个id
属性,用于传入页面详情页,如下所示:123456<scroll-view class="ui_menu" scroll-y="true"><view class="cell" wx:for="{{lists}}" bindtap="cellClick" id="{{index}}"><text class="ui_name">{{item.name}}</text><text class="ui_des">{{item.des}}</text></view></scroll-view>选中
pages
文件夹下的index
文件夹下的index.js
文件,改写我们的cellClick
函数,将对应组件的索引index
,传入到detail
页面,如下所示:1234567//表示点击 `cell` 将跳转到对应详情页cellClick: function(e){console.log(e.currentTarget.id);wx.navigateTo({url: '../detail/detail?index=' + e.currentTarget.id});},
新建一个详情页目录
detail
,在此目录下,分别创建:detail.js
、detail.wxml
、detail.wxss
文件找到我们的
app.json
文件,加入页面目录detail
12345678910111213{"pages":["pages/index/index","pages/logs/logs","pages/detail/detail"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "小程序组件","navigationBarTextStyle":"black"}}选中
pages
文件夹下的detail
文件夹下的detail.js
文件,键入如下代码:123456789101112131415var app = getApp();Page({data: {// 用于标记是哪个控件的详情页,默认为 -1,表示为空index: -1},onLoad: function(opts){console.log("detail页面数据加载完成,传入过来的index为"+opts.index);this.setData({// 改变index的值index: opts.index});}});选中
pages
文件夹下的detail
文件夹下的detail.wxml
文件,键入如下代码:12345678910111213141516<block wx:if="{{index == 0}}"><view class="warp"><view class="header">header</view><view class="content"><view class="main">圣杯布局(Holy Grail Layout)指的是一种最常见的网站布局。页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer)。其中躯干又水平分成三栏,从左到右为:导航、主栏、副栏。如果是小屏幕,躯干的三栏自动变为垂直叠加。</view><view class="left">left</view><view class="right">right</view></view><view class="footer">footer</view></view></block>
其中 block
用于条件渲染,用于判断是否需要渲染该代码块,此处代码的意思是,如果 index==0
,则渲染该模块
- 选中
pages
文件夹下的detail
文件夹下的detail.wxss
文件,键入如下代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849.warp {display: flex;flex-direction: column;}.header , .footer {flex: 1;background-color: black;color: white;}.content {display: flex;flex: 1;}.main {flex: 1;}.left , .right {flex: 0 0 12rem;max-width: 100px;}.left {order: -1;}@media (max-width: 768px) {.content {flex-direction: column}.main,.left,.right {flex:auto;}.left , .right {max-width: 100%;}}/*添加背景颜色*/.main{background-color: orange;}.left {background-color: blue;}.right {background-color: red;}
此处用到的知识是 CSS
中的弹性布局,大家可以参考阮一峰的网络日志:Flex 布局教程