小程序开发 第二篇:使用微信小程序开发者工具、wepy框架初始化项目

news/2024/11/9 17:33:59

上一篇:小程序开发 第一篇:注册、获取unionid同步企业项目数据

1.微信小程序开发者工具

  • 下载:小程序开发者工具
  • 使用:
  • 小程序原生开发:直接使用小程序开发者工具打开项目即可
  • 小程序框架开发:首选官方提供类vue.js开发框架 wepy.js ,备选 mpVue。我们选择的是 wepy
    PS:mpvue尤大大亲自点赞,目前github已经有10k+ star。无论哪个框架都是用来方便开发,同时也都是需要学习成本的。大家可以根据自己项目进度自行选择,下面是一张区别图:
    图片描述

2.wepy.js 初始化项目

  • wepy官方文档入口
  • 全局安装或更新WePY命令行工具
        npm install wepy-cli -g
  • 初始化项目
        wepy new myproject
        # 1.7.0之后的版本使用 wepy init standard myproject 初始化项目,使用 wepy list 查看项目模板
  • 切换项目并安装依赖
        cd myproject

        npm  install
  • 开启实时编译,官方给出的指令是 wepy build --watch,不习惯- -,那就在package.json -> scripts 配置一条新命令 "dev": "wepy build --watch", 我们就可以愉快的 npm run dev

        npm run dev
  • 项目目录结构介绍(wepy官方目录修改版,没有太大变动,可以自行修改)

###开发

###目录结构
<pre>
.
├── dist                   小程序运行代码目录(该目录由WePY的build指令自动编译生成,请不要直接修改该目录下的文件)
├── node_modules           
├── src                    代码编写的目录(该目录为使用WePY后的开发目录)
|   ├── api                接口集合目录(目前我们使用 Promise 封装小程序接口,集中设置登录缓存、环境切换, 直接向外暴露方法)
|   ├── components         WePY组件目录(组件不属于完整页面,所以不会有josn配置,不能直接配置小程序)
|   |   ├── com_a.wpy      可复用的WePY组件a
|   |   └── com_b.wpy      可复用的WePY组件b
|   ├── images             tabbar图片存放
|   ├── mixins             可复用方法抽离库
|   |   └── test.js        page页中引入后调用 mixins = [test], 当前page方法优先执行,混合函数方法后执行,与 vue相反
|   ├── mocks              本地mock数据
|   ├── pages              WePY页面目录(属于完整页面)
|   |   ├── index.wpy      index页面(经build后,会在dist目录下的pages目录生成index.js、index.json、index.wxml和index.wxss文件)
|   |   └── other.wpy      other页面(经build后,会在dist目录下的pages目录生成other.js、other.json、other.wxml和other.wxss文件)
|   ├── styles             基础样式库
|   |   ├── iconfont       字体图标文件夹
|   |   └── base.css       基础样式库,原子类等。
|   ├── utils              工具函数库
|   |   └── util.js        存放第三方工具库和一些基础方法,比如日期格式化、文件大小格式化、节流函数等
|   └── app.wpy            小程序配置项(全局数据、样式、声明钩子等;经build后,会在dist目录下生成app.js、app.json和app.wxss文件)
└── package.json           项目的package配置
</pre>
  • 现在,我们初始化一个小程序项目,myproject 项目编译后生成一个 dist 文件夹,这个文件夹存放变异后的小程序原生代码。打开小程序开发者工具选中 dist 文件,填写 appid、项目名称(本地开发名称随便填写,并非小程序真正名称)。
  • 项目开启:

    • 框架开发,不需要小程序编辑器。头像右侧3个选项,关闭编辑器,打开自己的编辑器,推荐vsCode
    • 查看调试器 Console,会发现一堆报错,不要慌。 wepy.js v1.7.0之前是没有 project.config.json 配置小程序开发工具文件的,需要手动关闭。点击开发者工具右上角 详情 -> 项目配置

      图片描述

    • wepy.js v1.7.0之后,初始化项目有配置文件,如图图片描述没有报错了,؏؏☝ᖗ乛◡乛ᖘ☝؏؏完美。

3.真机调试

  • 预览:项目不能超过2M,点击小程序开发者工具 预览 按钮,已添加权限的开发者使用微信扫码,小程序在手机端打开了。一般开发环境接口均为 http , 真机预览会失败,打开右上角胶囊按钮菜单 -> 打开调试 即关闭了小程序https证书检测,重新打开小程序即可预览。
  • 远程调试:类似预览,但是会重新打开一个控制台,选择Wxml,可以看到真机端有DOM选中,更好的调试。

小程序开发注意事项

  1. 视图设计官方推荐以 iPhone6 为准。小程序适配单位为 rpx,设计图为iPhone6是最方便开发的,量多少写多少,只是单位用rpx。
  2. 小程序预览、发布,都是有大小限制的,最大为2M,寸土寸金。项目中一般图片最大,设计给图后,首先第一步 压缩!压缩!压缩! 压缩图片网站,然后放到静态资源管理平台CDN等,生成网络资源。 小程序原生tabbar图片只支持 png/jpg/jpeg ,只能是本地图片。
  3. iconfont使用,这个就比较坑了,小程序支持iconfont,本地模拟器也是没问题的,但是真机就尴尬了,真机不识别*tff字体图标文件,只支持Base64格式,所以我们的 *tff文件需要转码( https://transfonter.org/ )使用方法:图片描述

转码成功后替换 iconfont.css 内 @font-face下src 内容即可,当然这里也有坑,base64后 icon 没有颜色了,所以单色值icon可以用 iconfont, 色彩比较多的icon还是用压缩后的网络图片吧
图片描述

PS:有坑一起填,有发现新坑,或者写的不对的地方请指正



http://www.niftyadmin.cn/n/4388308.html

相关文章

java socket 线程池_java socket编程(多任务处理,线程池)

与为每个连接创建一个新的线程不同&#xff0c;服务器在启动时创建一个由固定数量线程组成的线程池(thread pool)&#xff0c;当一个新的客户端连接请求传入服务器&#xff0c;它将交给线程池中的一个线程处理。当该线程处理完这个客户端后&#xff0c;又返回线程池&#xff0c…

Fibonacci numbers

Program for Fibonacci numbers The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 141, …….. In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation Fn…

HTML DOM详细知识

1&#xff1a;节点 HTML DOM中&#xff0c;所有的事物都是节点。 整个文档是一个文档节点&#xff1b; 每个HTML元素是一个元素节点&#xff1b; 每个元素内的文本是一个文本节点&#xff1b; 每个属性是一个属性节点&#xff1b; 每个注释是一个注释节点&#xff1b; 2&#x…

PCI简介(二)

2019独角兽企业重金招聘Python工程师标准>>> 1.x86处理器系统地址空间简介 1.1 CPU地址空间 CPU地址空间是指CPU所能寻址的空间大小&#xff0c;比如对于32位CPU来说&#xff0c;其所能寻址的空间大小为0~4G。这是由CPU自身的地址总线数目决定的。这段空间也被称作C…

数组总结,持续更新~

数组的基础方法&#xff0c;就不一一介绍了&#xff0c;这里会介绍一些常用的ES6的一些常用方法&#xff0c; 在这之前&#xff0c;先说一些数组的常见问题。 1 数组的构建 数组的普通调用&#xff0c;等于构造调用。 下面的3种方式&#xff0c;都是一样的。 let arr Array(1,…

小程序中form 表单提交和取值方法

我们直接给 input 添加 bindinput,比如:<input bindinput="onUsernameInput" />,可以在 onUsernameInput 中直接使用 e.detail.value,即: onUsernameInput : function(e) { e.detail.value; } 但是,如果有多个输入控件,我们不可能为每个控件添加 bind…

java dateformat 24_java – (简单)DateFormat,允许24:00:00和00:00:00作为输入

值24:00未在LocalTime中表示,因为它严格地是第二天的一部分.考虑到24:00可以表示为LocalTime的一部分的模型,但结论是它在很多用例中会非常混乱,并且会产生比它解决的更多错误.但是在java.time中支持24:00.完全可以使用标准格式化技术对其进行解析,但是必须使用SMART或LENIENT模…

python使用yaml库读取和写入数据

import yamltest.yml文件数据&#xff1a;yaml_path r"D:\PycharmProjects\2020study\BBBstudy\test.yml" with open(yaml_path, r) as f:cfg f.read()print(cfg)# 此时读出来的数据是字符串print(type(cfg))# 用yaml.load方法转字典d yaml.load(cfg)print(d)prin…