首页 > 代码库 > 微信小程序开发初体验

微信小程序开发初体验

微信小程序上线几天了,趁着周末补了一下JS,然后今天参照文档和教程写了个小demo

文档地址       教程地址

 

看文档就看了一点时间,因为以前没接触过JS框架,但是接触过PHP框架= = ,所以理解小程序的框架也不是很难。

微信小程序虽然是用了JS,但是没有了document对象,用起来就感觉有点别扭,没JS那种DOM操作随心所欲的感觉。。可能是因为暂时还不是很熟悉。

照着教程实现了一下,JS部分倒是没什么太大的问题。

主要是CSS部分,因为教程里面的CSS做的感觉不是很好,所以就自己重写了。

有几个不一样的地方:

1.用的单位是rpx,这个文档里面有介绍,可以自己去查看。位置:框架->WXSS

2.屏幕的宽度是固定750rpx,= = 搞的我还傻乎乎的在想怎么获取屏幕的宽度再然后就行换算。。(不过这个rpx用起来还是很爽的,起码不再需要进行各种分辨率调整了)

3.用到了display: flex;

flex-direction: column;

这两个都是之前没有接触过的(原谅我渣渣)现在有必要好好了解下这个东西。

4.JS没有了DOM操作感觉很不爽的样子。获取用户的输入都有点麻烦(详情见文档中的Q&A)

5.如果需要在组件中绑定数据进行传输,可以使用将属性命名为data-XXX的方式,通过获取event.currentTarget即可获取XXX的值

6.未完待续...

 有疑问的地方:

1.在swiper组件中,文档中写明了

swiper-item

仅可放置在<swiper/>组件中,宽高自动设置为100%。

但是为什么我已经设置了swiper的组件宽度为750rpx,swiper-item下的image组件依然在右侧会有空白,即使把swiper-item的padding和margin设置为0也不行,只能把image设置为750rpx才解决。

 

由于小程序暂时不能跳转外链,所以无法进行详情查看。只能实现到这里了。

上代码:

技术分享
 1 <swiper indicator-dots="true" autoplay="true" interval="1500" duration="1000" class="slide-image-box"> 2     <block wx:for="{{news}}"> 3         <swiper-item> 4             <image src="{{item.thumbnail_pic_s02}}" class="slide-image"/> 5         </swiper-item>     6     </block> 7 </swiper> 8 <view class="news-list"> 9 <block wx:for="{{news}}">10         <image src="{{item.thumbnail_pic_s}}" class="news-image"/>11         <view class="news-content" data-news-index="{{index}}" bindtap="viewInfo">12             <text class="news-title">{{index+1}}.{{item.title}}</text>13             <text class="news-text news-author">{{item.author_name}}</text>14             <text class="news-text news-date">{{item.date}}</text>15         </view>16 </block>17 </view>
视图层代码
技术分享
 1 Page({ 2     data:{ 3         news:[] 4     }, 5     onl oad:function(){ 6         var that=this; 7         wx.request({ 8             url:‘http://v.juhe.cn/toutiao/index‘, 9             data:{10                 type: ‘topNews‘ ,11                 key: ‘482e213ca7520ff1a8ccbb262c90320a‘12             },13             header:{14                 ‘Content-Type‘: ‘application/json‘15             },16             success:function(res){17                 if(res.data.error_code == 0){18                     that.setData({19                         news:res.data.result.data20                     })21                 }else{22                     console.log("获取失败");23                 }24             }25         });26     },27     viewInfo:function(e){28         console.log(e.currentTarget.dataset.newsIndex);29     }30 })
逻辑层代码
技术分享
 1 .slide-image-box{ 2      width:750rpx; 3      height: 422rpx; 4 } 5 .slide-image{ 6      width:750rpx; 7      height: 422rpx; 8 } 9 .news-list{10     display: flex;11     flex-direction: column;12     padding:20px 10px;13 }14 .news-image{15     display:flex;16     width:150rpx;17     height:100rpx;18 }19 .news-content{20     position:relative;21     top:-100rpx;22     left:180rpx;23     width:530rpx;24     height:120rpx;25     margin-bottom:-60rpx;26 }27 .news-title{28      font-weight:600;29      font-size:30rpx;30 }31 .news-text{32     font-size:24rpx;33     position:absolute;34     bottom:0rpx;35     color:#aaa;36 }37 .news-author{38     left:0rpx;39 }40 .news-date{41     right:0rpx;42 }
样式代码

同一套代码

iphone6下效果:

技术分享

 

iphone5:

技术分享

iphone4:

技术分享

 

三星S5:

技术分享

 

微信小程序开发初体验