热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

教你如何从零建造一个小程序项目

这篇文章写的非常简易,适应刚下载开发工具的新手学习。知识准备JavaScrip还是要看看的,推荐教程:JavaScript初级教...
IDE准备

下载地址:mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html

知识准备

JavaScrip还是要看看的,推荐教程:Javascript 初级教程

从零开始

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

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颜色,我们只需要在里面添加如下代码即可,下图有参数说明!

Paste_Image.png

Paste_Image.png

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

Paste_Image.png

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

美化页面

美化页面我们用到了 wxml 和 wxss文件

为了程序代码结构简洁

我们需要在跟目录下创建一个新文件夹 名字随意,我们这里叫pages

然后在pages文件夹里再创建新文件夹 名字随意 这里我们叫 index

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

Hellotext>view>

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

.window{ color=#4995fa;}

然后我们创建 index.js文件

在文件中输入如下代码(输入Page IDE会有提示)

函数解释如下:

Paste_Image.png

配置首页

Json文件负责配置页面路径

所以我们在里面加入如下代码

其中index的含义 其实就是指index.js文件

这里需要说明一点 pages 里面的路径其实是指向js文件的

如果一个目录下没有该名称的js文件是会报错的!

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

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

超级Hello World

为了学习事件绑定,以及如何将数据在页面上更新

我们来做个超级Hello World,就是我点击文字,能让

它变色!

绑定事件

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

Hellotext>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){ color = "window-red"; flag = false; }else{ color = "window"; flag = true; } this.setData({ color }); },

修改完后的代码如图

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

更新界面数据

这里有个问题 我们更换完值 但是在wxml中不会立即生效

所以我们需要调用

this.setData()方法将值同步给wxml 让它立即生效

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

最后再补充一点 index目录下也是可以配置 json文件的

也就是每个页面都可以配置自己独特的actionbar颜色等等

这里的配置会覆盖 app.json文件的配置

源码github 地址https://github.com/pwh0996/WXDemo.git

最后分享一波小程序源码,488个小程序demo源码下载专区:

p/36fc7213b5d0

有精力的朋友建议翻阅。

---

我在知乎开了一个live,4月22日晚(周六)8点半我在知乎与大家见面:【0基础周末学习小程序开发】(https://www.zhihu.com/lives/832919740296101888),欢迎捧场。

长按小程序码,打开“修行公社”,即刻加入“微信小程序”米圈

本篇首发于我的个人微信公众号哲学李论,主推艺术/技术相关内容,关注的都是朋友。

以上就是教你如何从零建造一个小程序项目的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文详细介绍了Ionic框架的使用方法及其与Angular的集成。Ionic框架是一个强大的前端开发工具,适用于构建跨平台的移动应用程序。文章将探讨如何引入必要的CSS和JavaScript文件,并解释bundle.js中包含的核心功能,如路由等。 ... [详细]
  • 探讨在特定情况下使用 Knockout.js 的 if 或 visible 绑定的最佳实践,特别是在处理未定义对象时的策略。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
author-avatar
iloveyoumuch18
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有