轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序 Tips:创建页面,URL 管理,Moc 数据,清空 input,路径 ... ...

发布者: ljf77 | 发布时间: 2018-5-5 17:55| 查看数: 7084| 评论数: 1|帖子模式

作者:xtuer,来自原文地址

开发环境

腾讯官方提供的微信web开发者工具的编辑功能是至今见过的最难用的编辑器,我们可以使用其他的编辑器例如 Atom,SublimeText 等编辑,保存后微信web开发者工具会自动的发现文件变化了,然后自动刷新小程序,看到修改后的效果。

创建页面

例如要创建一个课程的页面 course,不需要在小程序开发工具中手动的一个一个的创建目录和文件(很多教学视频里就是这么做的),只需要在 app.json 中的 pages 下加上页面注册的路径 "pages/course/course",保存,然后小程序开发工具就会自动的创建所有相关的目录和文件:

  1. {
  2. "pages": [
  3. "pages/index/index",
  4. // 添加下一行后,微信web开发者工具发现 app.json 变化了,会自动的创建
  5. // 目录 course/course
  6. // course.wxml
  7. // course.wxss
  8. // course.js
  9. // course.json
  10. "pages/course/course"
  11. ],
  12. ...
  13. }

URL 管理

为了集中管理 URL,把所有和服务器相关的 URL 都放到 /util/urls.js 里集中管理,然后需要使用的页面使用 require() 进行加载。

  1. // 文件名: /util/urls.js
  2. var HOST = '';
  3. // [1] 集中定义 URL
  4. var Urls = {
  5. REST_HOME: HOST + '/rest/microapphome',
  6. REST_BANNERS: HOST + '/rest/banners',
  7. };
  8. // [2] 导出 URL 模块
  9. module.exports = {
  10. Urls: Urls
  11. };

在 pages/course/course 中使用 URL:

  1. var Urls = require('../../utils/urls.js').Urls; // [3] 引入 URL 模块
  2. Page({
  3. onLoad: function(options) {
  4. var self = this;
  5. wx.request({
  6. url: Urls.REST_HOME, // [4] 使用 URL
  7. success: function(response) {
  8. }
  9. });
  10. }
  11. )};

Moc 数据

开发中可能后端还没有准备好,或者为了开发方便查看效果,可以使用假数据,放在 /util/moc.js,初始化时使用 moc 数据初始化,onLoad() 时发现是开发就不从服务器加载数据,如果是线上环境就从服务器加载数据,记得上线前修改为不使用 moc 数据,给一个开关进行修改就可以了。

  1. // 文件名: /util/moc.js
  2. // 开发环境中的虚拟数据
  3. var MOC = {
  4. moc: true,
  5. course: {courseId: 1234, name: 'Hadoop 入门', instructor: 'Clapton'}
  6. };
  7. // 和 MOC 中的数据一一对应
  8. var EMPTY_MOC = {
  9. moc: false,
  10. course: {}
  11. };
  12. module.exports = {
  13. Moc: Config.moc ? MOC : EMPTY_MOC
  14. };

页面中使用 moc:

  1. var Moc = require('../../utils/moc.js').Moc;
  2. var Urls = require('../../utils/urls.js').Urls;
  3. Page({
  4. data: {
  5. course: Moc.course // 先初始化为 Moc 里的 course
  6. },
  7. onLoad: function(options) {
  8. // 如果是生产环境,则执行初始化请求 course,否则就使用 Moc 里的 course,
  9. // 这样不需要访问服务器也能看到页面的效果
  10. var x = Moc.moc ? '' : this.init(options);
  11. },
  12. init: function(options) {
  13. var self = this;
  14. var courseId = options.courseId; // 生产环境环境时的 courseId 是页面链接传过来的
  15. wx.request({
  16. url: Util.formatString(Urls.REST_COURSES, {courseId: courseId}),
  17. success: function(response) {
  18. var result = response.data;
  19. if (result.success) {
  20. self.setData({course: result.data});
  21. }
  22. }
  23. });
  24. }
  25. }

清空 input

给 input 的 value 绑定一个变量,设置这个变量的值为空就可以实现清空 input 了:

  1. <view class="input-box">
  2. <input value="{{newComment}}" bindinput="bindNewComment" placeholder="请输入评论……"/>
  3. <button bindtap="submitComment" type="default" plain="{{true}}">评论</button>
  4. </view>
  5. App({
  6. data: {
  7. newComment: ''
  8. }
  9. // 把用户输入的评论保存到变量里
  10. bindNewComment: function(e) {
  11. this.data.newComment = e.detail.value; // 不更新 input,提高效率
  12. },
  13. submitComment: function() {
  14. // 提交到服务器
  15. wx.request({
  16. url: Urls.REST_COMMENTS,
  17. success: function(response) {
  18. this.setData({
  19. newComment: '' // 清空 input
  20. });
  21. }
  22. });
  23. },
  24. });

路径

使用工程中的文件时,文件的路径有相对路径和绝对路径:

相对路径: 
都可以使用相对路径,但是有时候当页面跳转了几次后,容易出错,所以尽量不要使用相对路径 
wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wxml 中的 url,CSS 中图片的路径,require() 等引用工程中文件的路径都可以使用相对路径 
绝对路径: 
大多数时候都可以使用绝对路径,只有 require() 引用 js 文件时例外 
可以使用:wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wxml 中的 url,CSS 中图片引用工程中文件的路径都可以使用绝对路径,绝对路径以 / 开头,例如 /image/dog.png 
不可使用:require() 引用工程中的文件时只能使用相对路径,不能使用绝对路径

最新评论

lazypig 发表于 2022-6-13 10:41
网页视频怎么通过源代码下载

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表