微信小程序开发01

微信小程序开发01

1、从0开发helloworld

从0开发hello,world,初始化一个项目,基本架构只留下pages文件夹和project.config.json。

现在我们着手写hello,world!

  1. 创建项目3个app基本文件: app.js/wxss/json
  2. 创建about文件夹
  3. 创建4个基本文件:about.js/wxml/wxss/json
  4. 往文件里面写东西

在完成上面基本文件的创建后,我们就要着手写代码了。json文件不能为空

首先,我们要对app.json进行操作:

{

  "pages": [

    "pages/about/about"   //指定访问路由

  ]

}

接下来,进行hello,world的编写:

about.wxml ------相当于html文件

<text class="info">hello,world!</text>

about.js

//创建一个page函数
page{
    
}

接下来保存编译,hello,world就出来了

然后,进行样式的修改:

找到about.wxss文件:

.info{
  /* text-align: center; */
  font-size: 30px;
  /* color: red; */
  font-weight: bold;
  /* padding: 30px auto; */
}

就可以定制自己的样式了。

2、进行导航栏的编辑

找到about,json文件:

我们查看微信小程序官网开发文档,https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html,发现我们只需要在自己的页面对*.json文件进行修改,就可以对导航栏进行编辑:

配置项

属性 类型 默认值 描述 最低版本
navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如 #000000
navigationBarTextStyle string white 导航栏标题颜色,仅支持 black / white
navigationBarTitleText string 导航栏标题文字内容
navigationStyle string default 导航栏样式,仅支持以下值:default 默认样式custom 自定义导航栏,只保留右上角胶囊按钮 微信客户端 7.0.0
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的样式,仅支持 dark / light
backgroundColorTop string #ffffff 顶部窗口的背景色,仅 iOS 支持 微信客户端 6.5.16
backgroundColorBottom string #ffffff 底部窗口的背景色,仅 iOS 支持 微信客户端 6.5.16
enablePullDownRefresh boolean false 是否开启当前页面下拉刷新。详见 Page.onPullDownRefresh
onReachBottomDistance number 50 页面上拉触底事件触发时距页面底部距离,单位为px。详见 Page.onReachBottom
pageOrientation string portrait 屏幕旋转设置,支持 auto / portrait / landscape 详见 响应显示区域变化 2.4.0 (auto) / 2.5.0(landscape)
disableScroll boolean false 设置为 true 则页面整体不能上下滚动。只在页面配置中有效,无法在 app.json 中设置
disableSwipeBack boolean false 禁止页面右滑手势返回 微信客户端 7.0.0
usingComponents Object 页面自定义组件配置 1.6.3

页面配置中只能设置 app.jsonwindow 对应的配置项,以决定本页面的窗口表现,所以无需写 window 这个属性。

配置示例

{
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "微信接口功能演示",
  "backgroundColor": "#eeeeee",
  "backgroundTextStyle": "light"
}

在模拟器中就可以显示相应的样式了。

3、view、text、image组件初探

text常见组件元素:

<text class="info" id="jay" style="" bindtap="f0" hiddeon="" data-user-name="user" >hello,world!</text>

image常见元素:

<image src="/images/a.jpg"></image>

容器:

在html中容器是: div

在wxml里是: view

4、快速实现基本布局

about.wxml:

<view class="container">
  <image src="/images/a.jpg"></image>
  <text>电影周周看</text>
  <text>每周推荐一部电影</text>
  <text>我的微博:xxx.weibo.com</text>
</view>

about.wxss:

.container{
  background-color: #eee;
  height: 100vh;
  text-align: center;
}

text{
  display: block;
}

iamge,text{
  margin-bottom: 60px; 
}

就实现了我们要想实现的布局,但问题产生了,只要我们的图片变化,就会导致布局变化,旧的重新计算margin-bottom,这是非常不智能的。

注:

1.em

在做手机端的时候经常会用到的做字体的尺寸单位

说白了 em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5

但是当div进行嵌套的时候,em始终是按照当前div继承的字体大小来缩放,参照后面的例子。

2.rem

这里的r就是root的意思,意思是相对于根节点来进行缩放,当有嵌套关系的时候,嵌套关系的元素的字体大小始终按照根节点的字体大小进行缩放。

参照后面给的demo

3.vh

vh就是当前屏幕可见高度的1%,也就是说

height:100vh == height:100%;

但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,

但是设置height:100vh,该元素会被撑开屏幕高度一致。

4.vw

vw就是当前屏幕宽度的1%

补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,

但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw 比50%大的情况

所以,我们要使用flex布局:

.container{
  background-color: #eee;
  height: 100vh;
  /* text-align: center; */
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}

#img{
  height: 187.5rpx;
  width: 187.5rpx;
  border-radius: 100rpx;
}

5、添加页面

添加页面weekly:

同about页面,需要在pages下创建一个文件夹weekly,并创建4个基本要素文件,由于本实例和about实例用到了相同的css代码段,所以将其放在全局配置中:app.wxss

.container{
  background-color: #eee;
  height: 100vh;  //高度100%
  display: flex;  //采用flex布局
  flex-direction: column;   //方向采用垂直
  justify-content: space-around;  //相同间隔
  align-items: center; //居中
}

app.json全局配置文件:

{
  "pages": [
    "pages/about/about",
    "pages/weekly/weekly"
  ]
}

想要那个做主页,就把哪个连接放前面。

现在我们要完成一个简单的功能,在about页面上,给每周推荐加上navigator,实现页面间的跳转。

在about.wxml中:

<view class="container">
  <image src="/images/a.jpg" id="img"></image>
  <text>电影周周看</text>
  <view>
    <text>我</text> <navigator url="/pages/weekly/weekly" style='display: inline;' open-type="navigate" hover-class="nav-hover" class="nav-default">每周推荐</navigator><text>一部电影</text>
  </view>
  <text>我的微博:xxx.weibo.com</text>
</view>

在这里,主要讲解如下代码段:

  <view>
    <text>我</text> <navigator url="/pages/weekly/weekly" style='display: inline;' open-type="navigate" hover-class="nav-hover" class="nav-default">每周推荐</navigator><text>一部电影</text>
  </view>
.nav-default{
  color: blue;
}
.nav-hover{
  color: red;
}

由于text是块级元素,为了把它转为行内元素,所以使用样式display: inline并给他添加容器view,转为行内元素,

由于text只支持字符串文本,所以navigatior元素不能解析,所以将这一句话分成了3个片段,将需要选择跳转的元素进行圈定,如上面的本周推荐,就给他添加了navigator元素,用来支持它跳转另外的页面,在navigator中也有很多样式和方法,首先url是跳转的页面网址,open-type支持多种方式:

在这里,由于css的执行,在同一块里面,当css定义的属性有冲突的时候,后面个成功!

如果变为

.nav-hover{
  color: red;
}
.nav-default{
  color: blue;
}

就不会在点击的时候显示为红色,会一直是蓝色!

open-type 的合法值

示例代码

在开发者工具中预览效果

.navigator-hover {
  color:blue;
}
.other-navigator-hover {
  color:red;
}
<!-- sample.wxml -->
<view class="btn-area">
  <navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
  <navigator url="../../redirect/redirect/redirect?title=redirect" open-type="redirect" hover-class="other-navigator-hover">在当前页打开</navigator>
  <navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover">切换 Tab</navigator>
  <navigator target="miniProgram" open-type="navigate" app-id="" path="" extra-data="" version="release">打开绑定的小程序</navigator>
</view>

默认是navigator,使用redirect没有返回按钮

获取更多内容

获取更多内容请访问: https://juntech.top/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • 一、第三方应用平台 1.凡科(便宜) 2.建站之星 3.即速应用(专业性强) 二、微信小程序开发工具 1.微信官方...
    我是呆哥阅读 137评论 0 1
  • 每天的学习记录,可能有的地方写的不对,因为刚学,以后发现错的话会回来改掉整体流程 https://develope...
    有点健忘阅读 4,644评论 0 7
  • 原文:http://gold.xitu.io/entry/57e34d6bd2030900691e9ad7/pro...
    AiPuff阅读 2,492评论 0 3
  • 昨天,学校临时通知开会。后来才知道是对学校管理层民意测验。这样的事年年都要做。同事们很多年前就此事简称为打勾。领导...
    独孤草原狼阅读 223评论 0 0
  • 大雨朦胧的夜色格外迷人 静坐楼台 听雷雨交加 空气里飘着泥土的味道 屋檐下 嘀嗒嘀嗒 马路上的霓虹灯 随车流拉长了...
    z云淡风轻阅读 134评论 0 1