最近在研究微信小程序,看到了别人的demo,照着做后发现了一些小问题,所以就重写了一个,加了一些自己的理解。
  • 准备工作

    • IDE搭建
    • 知识准备
  • 从零开始
    • app.js
    • app.json
    • app.wxml
    • app.wxss
  • Hello World
    • 创建程序实例
    • 美化ActionBar
    • 美化页面
    • 配置首页
  • 超级Hello World
    • 事件绑定函数
    • 更新界面数据

准备工作

IDE搭建

直接到微信公众平台就可以下载


知识准备

JavaScrip还是要看看的,推荐教程 廖雪峰大神的博客
HTML+CSS 大概知道是干啥的就行


从零开始

微信小程序中就四种类型的文件

  • js ---------- JavaScrip文件
  • json -------- 项目配置文件,负责窗口颜色等等
  • wxml ------- 类似HTML文件
  • wxss ------- 类似CSS文件

在根目录下用app来命名的这四中类型的文件,就是程序入口文件。

app.json

必须要有这个文件,如果没有这个文件,IDE会报错,因为微信框架把这个作为配置文件入口,
你只需创建这个文件,里面写个大括号就行
以后我们会在这里对整个小程序的全局配置。记录了页面组成,配置小程序的窗口 背景色,配置导航条样式,配置默认标题。

app.js

必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写
以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。

app.wxss

这个文件不是必须的。因为它只是个全局CSS样式文件

app.wxml

这个也不是必须的,而且这个并不是指主界面哦~因为小程序的主页面是靠在JSON文件中配置来决定的

有了这两个文件你运行程序,IDE就不会报错了,也意味着这是最简单的微信小程序


Hello World

创建程序实例

app.js文件管理整个程序的生命周期,所以在里面添加如下代码:(输入App IDE会有提示)

App({onLaunch: function () {console.log('App Launch')},onShow: function () {console.log('App Show')},onHide: function () {console.log('App Hide')}
})

具体API解释如下

美化ActionBar

json文件负责配置ActionBar颜色,我们只需要在里面添加如下代码即可,下图有参数说明!

{"window":{                        "navigationBarBackgroundColor": "#BBDEF8","navigationBarTitleText": "Demo","navigationBarTextStyle":"black"
    }
}

现在看ActionBar是不是像那么回事了!好接下来我们继续写我们第一个界面

美化页面

美化页面我们用到了 wxml 和 wxss文件
为了程序代码结构简洁
我们需要在跟目录下创建一个新文件夹 名字随意,我们这里叫pages
然后在pages文件夹里再创建新文件夹 名字随意 这里我们叫 index
然后我们创建index.wxml文件然后在里面写入以下代码

<view><text class="window">Hello</text>
</view>

然后创建index.wxss文件然后在里面写入以下代码

.window{color=#4995fa;
}

然后我们创建 index.js文件
在文件中输入如下代码(输入Page IDE会有提示)

//index.js
//获取应用实例
Page({
data: {
text: "这是一个页面"
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
console.log("onLoad");
},
onReady: function () {
console.log("onReady");
// 页面渲染完成
},
onShow: function () {
console.log("onShow");
// 页面显示
},
onHide: function () {
console.log("onHide");
// 页面隐藏
},
onUnload: function () {
console.log("onUnload");
// 页面关闭
}
})
这样运行的时候在控制台会看到整个流程

函数解释如下:

配置首页

Json文件负责配置页面路径
所以我们在里面加入如下代码
其中index的含义 其实就是指index.js文件
这里需要说明一点 pages 里面的路径其实是指向js文件的
如果一个目录下没有该名称的js文件是会报错的!

"pages":["pages/index/index"
],

完成了!我们来运行程序!


超级Hello World

为了学习事件绑定,以及如何将数据在页面上更新
我们来做个超级Hello World,就是我点击文字,能让
它变色!

绑定事件

我们打开index.wxml 将里面代码改成这样

<view><text catchtap="click" class="window">Hello</text>
</view>

其实也就是加了

  • catchtap="click"

这两个属性是什么意思呢 别着急 我会一一解释

上图展示了事件的一些的属性名称,这里需要注意红框标注起来的内容,区分出冒泡事件和非冒泡事件,其实冒泡事件就是需要往上面一层容器传递这个事件。

看了这图 我们再来看 catchtap="click" 的含义
catch 代表非冒泡事件
tap 代表点击事件
所以连在一起就是非冒泡点击事件
那后面那个click是啥
click 其实只是个变量名字
我们在index.js需要用这个名字绑定接收事件的函数
我们打开index.js
然后添加如下函数

  click:function(){console.log("点击了文字");},

添加完后代码长这样 红框中就是 添加的这个代码

所以其实点击事件的回调函数 就是 catchtap="click"
中的 click 后面加上 :function() 构成的
现在我们来运行程序试试 然后点击文字

看是不是调用了 click:function 函数 并且打出了log好接下来我们写点击一下变色的逻辑那如何让一个文字变色呢,当然是css所以我们需要再index.wxss 中添加一个样式
.window-red{color:#D23933;
}

然后我们进入index.js文件
你会发现代码里面有个 data:{} 它不是page生命周期函数
其实他是个变量的数组,这个里面申请的变量都可以在 wxml中使用

我们在这里申请一个color

color的值就是index.wxss中的样式名称
然后进入index.wxml中,将class中的值改成 {{color}}

其实意思就是 将js文件中变量 color的值在这里使用
也就是值等于 window
然后我们再回到index.js文件
在最上面申请一个变量控制点击
然后在click:function() 函数中添加如下代码

 
click:function(){
console.log("点击了文字");
if (flag) {
this.color = "window-red";
flag = false;
} else {
this.color = "window";
flag = true;
}
console.log(this.data);
this.setData(
{ color: this.color }
);
},

其实就是在点击是后 更换color变量的值 而更换的这个值其实就是样式的名称

更新界面数据

这里有个问题 我们更换完值 但是在wxml中不会立即生效
所以我们需要调用
this.setData()方法将值同步给wxml 让它立即生效

好了我们运行程序 点击Hello 看看是不是点一下 变一下颜色!

最后再补充一点 index目录下也是可以配置 json文件的
也就是每个页面都可以配置自己独特的actionbar颜色等等
这里的配置会覆盖 app.json文件的配置

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

微信小程序入门demo相关推荐

  1. 微信小程序入门Demo(石头剪刀布)

    前言:这是本人第一次写博客,希望对和我一样刚入门微信小程序的新手们有所帮助.因为本人主要做安卓开发,对web前端知识也只是用了一天时间恶补了下.对于微信小程序,我会由浅入深,和大家一起多总结多学习. ...

  2. 微信小程序入门教程+案例demo

    微信小程序入门教程+案例demo 尊重原创,转载请注明出处:原文查看惊喜更多 http://blog.csdn.net/qq137722697 首先摆在好姿态,--微信小程序开发也就那么回事.你只需要 ...

  3. 天河微信小程序入门《四》:融会贯通,form表单提交数据库

    天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...

  4. 微信小程序入门---01

    目录 微信小程序入门 一.小程序简介 二.第一个小程序 二.小程序代码的构成 三.WXML模块 四.WXSS 样式 五.JS 逻辑交互 六.组件 七.API 八.WXML 模板语法 - 数据绑定 九. ...

  5. A095_day01_微信小程序入门与组件

    目录 微信小程序入门与组件 - Day01 1.内容介绍 2.微信小程序简介(了解) 2.1.什么是小程序 2.2.微信小程序与app的区别 2.3.小程序在入口 2.4.微信小程序的工作原理 2.5 ...

  6. 微信小程序入门教程---列表渲染多层嵌套循环及wx:key的使用(双层for循环)

    前言 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for="{{items} ...

  7. 【微信小程序】微信小程序入门与实战-个人笔记

    微信小程序入门与实战 文章目录 微信小程序入门与实战 1 初识微信小程序 1-1 2020版重录说明 1-2 下载小程序开发工具 1-3 新建小程序项目 1-4 小程序appid的注册 1-5 新版小 ...

  8. 微信小程序开源Demo精选

    微信小程序开源Demo精选 原文:微信小程序开源Demo精选 1. 仿QQ应用程序(#社交 #聊天 #SNS) 地址:https://github.com/xiehui999/SmallAppForQ ...

  9. 微信小程序入门1--新建微信小程序页面

    微信小程序入门1–新建微信小程序页面 在新建微信小程序后会自动生成一个DEMO实例,我们可以在实例中修改自己所需的内容,当内容过多时,实例中的页面不足以满足我们的需求,因此需要新建微信小程序页面. 本 ...

最新文章

  1. Blender 和Unreal Engine中的模块化3D建筑技能学习视频教程
  2. 在像Angular2这样的SPA应用中使用Google Analytics的方法
  3. Agile in a Flash:万物皆渐进(14)
  4. java jtable 添加数据库_java-将jTable中的数据插入数据库
  5. Button的使用(七):RadioGroup、RadioButton
  6. 【建议收藏】二叉树的序列化与反序列化
  7. XLNet(Generalized Autoregressive Pretraining for Language Understanding) 论文笔记
  8. idea 修改样式要编译_在IDEA中DEBUG Javac源码
  9. java监听键盘事件(控制台输出按键信息)
  10. [机缘参悟-12]:“易经“、“儒“、“释“、“道“、“法”、“墨”、“兵”的基本原理与核心思想
  11. 异数OS-星星之火(二)--远程实验室注册开放
  12. Linux: SSH免密登录配置完了不生效
  13. 用了pcl的地方, 程序直接崩溃 挂掉
  14. Android使用讯飞SDK开发语音识别及合成小Demo
  15. 试页打印机失败,是否要参阅打印疑难解答已或得帮助?
  16. 爱发php企业发卡网源码_PHP最新企业级自动发卡平台网站源码完整商业版_源码下载...
  17. 网络基础与数据通信基础
  18. 16-webpack 压缩 CSS 代码
  19. 最喜欢的一种人生应该是名利淡泊一点的人生,是一个努力奋斗的人生
  20. 股票买入卖出问题 leetcode123(最多k次交易)

热门文章

  1. iptables基于域名的本机流量控制
  2. 免费使用office365和5TOneDrive空间
  3. Html5手机端网址封装成微信小程序的教程
  4. DSSS、OFDM、FHSS的区别与联系
  5. 汽车投资公司企业FLASH网站模板ASP源码程序
  6. 未找到要求的 from 关键字_临沂网站关键字优化工具
  7. 网店代运营_云集微店
  8. centos7 gam_server进程导致CPU使用率100%,系统负载很高
  9. 《Python编程从入门到实践,P110---习题》
  10. 第一次建站——保姆篇