微信小程序开发初体验
微信小程序上线几天了,趁着周末补了一下JS,然后今天参照文档和教程写了个小demo
看文档就看了一点时间,因为以前没接触过JS框架,但是接触过PHP框架= = ,所以理解小程序的框架也不是很难。
微信小程序虽然是用了JS,但是没有了document对象,用起来就感觉有点别扭,没JS那种DOM操作随心所欲的感觉。。可能是因为暂时还不是很熟悉。
照着教程实现了一下,JS部分倒是没什么太大的问题。
主要是CSS部分,因为教程里面的CSS做的感觉不是很好,所以就自己重写了。
注意事项:
重点:
在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中
在 Android 上,小程序的 javascript 代码是通过 X5 内核来解析
在 开发工具上, 小程序的 javascript 代码是运行在 nwjs(chrome内核) 中
这就是为什么小程序同一段代码,在各种机器上运行效果不同甚至会报错的原因。
1.用的单位是rpx,这个文档里面有介绍,可以自己去查看。位置:框架->WXSS
2.屏幕的宽度是固定750rpx,= = 搞的我还傻乎乎的在想怎么获取屏幕的宽度再然后就行换算。。(不过这个rpx用起来还是很爽的,起码不再需要进行各种分辨率调整了)
3.用到了display: flex;
flex-direction: column;
这两个都是之前没有接触过的(原谅我渣渣)现在有必要好好了解下这个东西。
弹性布局
4.JS没有了DOM操作感觉很不爽的样子。获取用户的输入都有点麻烦(详情见文档中的Q&A)
5.如果需要在组件中绑定数据进行传输,可以使用将属性命名为data-XXX的方式,通过获取event.currentTarget即可获取XXX的值,如果需要跨页面传输,可以将此数据传输到AppService作为全局变量,然后另一个页面从全局变量中获取
如果是两个页面之间进行传输,可以通过把XXX拼成URL传递过去,接收方可以这样接受:
onLoad: function(options) {
console.log(options)
this.setData({
title: options.title,
id:options.id
})
}
})
6.连接数据库的话就通过wx.request请求数据就好了。
7.添加页面必须在app.json中声明页面
8.有一个很神奇的地方,在你的app.json中,如果你声明了多个页面,而你其中有一个页面没有写page,那么后面的页面中的page就会补上来,不要问我是怎么知道的。。心痛。
比如,我的introduce中的js文件没有生成page对象,那么我的cases页面中的page就会跑到introduce里面去。。videos就会跑到cases里面去,然后video页面就会爆警告,Page[pages/videos/videos] not found. May be caused by: 1. Forgot to add page route in app.json. 2. Invoking Page() in async task. 那么其中的事件,数据什么的也自然而然的都没有了。。。
9.未完待续...
有疑问的地方:
1、在swiper组件中,文档中写明了
swiper-item
仅可放置在<swiper/>
组件中,宽高自动设置为100%。
但是为什么我已经设置了swiper的组件宽度为750rpx,swiper-item下的image组件依然在右侧会有空白,即使把swiper-item的padding和margin设置为0也不行,只能把image设置为750rpx才解决。
2、弹性布局,在小程序中貌似有点小bug,在和地图组件配合使用时,使用flex-grow:1 让地图组件占满剩下的空间,在开发工具中没有任何问题,但是在ios真机环境下,进入页面会挤占其他组件的空间。然后又缩回去(也可能不会缩回去)
新版本解决了这个bug
3、地图组件在真机上无法显示自己的位置,但是在开发者工具上可以显示出模拟的位置。
新版本解决了这个bug
由于小程序暂时不能跳转外链,所以无法进行详情查看。只能实现到这里了。
上代码:
<swiper indicator-dots="true" autoplay="true" interval="1500" duration="1000" class="slide-image-box">
<block wx:for="{{news}}">
<swiper-item>
<image src="{{item.thumbnail_pic_s02}}" class="slide-image"/>
</swiper-item>
</block>
</swiper>
<view class="news-list">
<block wx:for="{{news}}">
<image src="{{item.thumbnail_pic_s}}" class="news-image"/>
<view class="news-content" data-news-index="{{index}}" bindtap="viewInfo">
<text class="news-title">{{index+1}}.{{item.title}}</text>
<text class="news-text news-author">{{item.author_name}}</text>
<text class="news-text news-date">{{item.date}}</text>
</view>
</block>
</view>
视图层代码
Page({
data:{
news:[]
},
onLoad:function(){
var that=this;
wx.request({
url:'http://v.juhe.cn/toutiao/index',
data:{
type: 'topNews' ,
key: '482e213ca7520ff1a8ccbb262c90320a'
},
header:{
'Content-Type': 'application/json'
},
success:function(res){
if(res.data.error_code == 0){
that.setData({
news:res.data.result.data
})
}else{
console.log("获取失败");
}
}
});
},
viewInfo:function(e){
console.log(e.currentTarget.dataset.newsIndex);
}
})
逻辑层代码
.slide-image-box{
width:750rpx;
height: 422rpx;
}
.slide-image{
width:750rpx;
height: 422rpx;
}
.news-list{
display: flex;
flex-direction: column;
padding:20px 10px;
}
.news-image{
display:flex;
width:150rpx;
height:100rpx;
}
.news-content{
position:relative;
top:-100rpx;
left:180rpx;
width:530rpx;
height:120rpx;
margin-bottom:-60rpx;
}
.news-title{
font-weight:;
font-size:30rpx;
}
.news-text{
font-size:24rpx;
position:absolute;
bottom:0rpx;
color:#aaa;
}
.news-author{
left:0rpx;
}
.news-date{
right:0rpx;
}
样式代码
同一套代码
iphone6下效果:
iphone5:
iphone4:
三星S5:
微信小程序开发初体验的更多相关文章
- 三言两语之微信小程序开发初体验(1)
一.前情 直接切入主题,微信发布了小程序,前端开发者表示,如果不会微信小程序的开发感觉就跟不上时代了,先解答几个容易出现歧义的问题 小程序就叫小程序,不叫应用号,因为apple不准,哈哈 小程序是 ...
- 微信小程序开发初体验--教你开发小程序
微信小程序 微信小程序面世以来受到的关注颇多,直到最近我才动手尝试进行了小程序的开发,总体上感觉还是不错的,有一点不适应的就是要摆脱Web APP开发对DOM的操作.在这里我就把我是如何利用API开发 ...
- Taro开发微信小程序的初体验
了解Taro 听说Taro是从几个星期前开始的,在一次饭桌上,一个小伙伴说:"Hey, 你听说了Taro么,听说只需要写一套程序就可以生成H5,小程序以及RN的代码模板,并且类似于React ...
- [转]微信小程序开发系列(一)小程序开发初体验
本文转自:http://www.cnblogs.com/rennix/p/6287432.html 开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领 ...
- 小程序开发初体验,从静态demo到接入Bmob数据库完全实现
之前我胖汾公司年会.问我能不能帮忙搞个小程序方便他们进行游戏后的惩罚/抽奖使用.出了个简单的设计图.大概三天左右做了个简单的小程序.目前提交审核了.对于写过一小段时间vue来说小程序很容易上手.写法和 ...
- 微信小程序开发系列(一)小程序开发初体验
开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领大家快速地学习和掌握小程序的开发. 关于还没有接触过小程序的开发者来说,最关心的问题无非就是,开发小 ...
- 微信小程序DEMO初体验
小程序虽然被炒的很热,但是绝大部分人却从未亲自体验过,在2017年的上班第一天,献上一个小程序DEMO,您可以体验! 注意:由于微信限制,只能使用扫一扫来体验下方小程序DEMO. DEMO首页截图如下 ...
- 微信小程序开发平台新功能「云开发」快速上手体验
微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一 ...
- 初尝微信小程序开发与实践
这可能是一个java程序员最不务正业的一次分享了. 小程序的火热相信不用我多说了,年初的时候老婆去浦东某达面试,甚至都被问有没有小程序测试经验.俨然小程序成为了互联网公司自PC,WAP,安卓,IOS之 ...
随机推荐
- java并发编程(十七)Executor框架和线程池
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17465497 Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动 ...
- 快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,即USE方法
命令:uptime说明:查看机器分别在1分钟.5分钟.15分钟的平均负载情况,显示的数字表示等待cpu资源的进程和阻塞在不可中断io进程的数量,如果1分钟的平均负载很高,而15分钟的平均负载很低,说明 ...
- 借助cookie实现子网页修改父网页内容遇到的问题:同一个浏览器访问相同页面,会互相影响。 (已解决)
问题是这样的, 我把左侧菜单做成了网页, 然后点击左侧菜单选项会改变右侧内容, 也就是子网页访问并修改父网页的内容. 为了兼容性更好, 我没有使用farther,或者opener等方法, 而是用了 ...
- android——数据库版本升/降级问题
数据库版本升级 在开发android应用程序的时候,一般由于在我们开发的时候我们不知道以后会后什么新功能,也有可能增加业务逻辑(也就是更新),可想而知我们原来的数据库结构可能不适用已更新的应用,那么应 ...
- IT人士必去的10个网站
1.Chinaunix 网址:http://www.chinaunix.net/ 简介:中国最大的linux/unix技术社区. 2.ITPub 网址:http://www.itpub.net/ 简介 ...
- 使用ReSharper打造团队代码检查流程
首先我想跟大家分享一下我们团队的代码检查流程. 1. 项目经理随时会检查成员的代码,如果发现有不符合规范的代码,会在注释里面加todo.比如,假设leo的代码不符合规范,那么项目经理就会加注释: // ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
- JavaScript常见原生DOM操作API总结
[TOC] 最近面试的时候被这个问题给卡了,所以抽时间好好复习一下. 几种对象 Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它,都共享着相同的基本属性和方法.常见的Node ...
- SharedPreferences.Editor 的apply()与commit()方法的区别
commit()的文档 官方文档如下: Commit your preferences changes back from this Editor to the SharedPreferences o ...
- Android开发学习之路-Android Studio开发小技巧
上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Andro ...