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

模块化高效开发微信小程序—汽车试驾

前言2017年1月9日,微信小程序发布。这也标志着FaceBook的RN,阿里的Weex,Tencent的小程序这三架马车在2017年并驱骑行。如今小程序更是如火中天,在这里,让我

《模块化高效开发微信小程序—汽车试驾》

前言

2017年1月9日,微信小程序发布。这也标志着FaceBook的RN,阿里的Weex,Tencent的小程序这三架马车在2017年并驱骑行。如今小程序更是如火中天,在这里,让我们也跟进时代的步伐从零基础一起在小程序元年撸个自己的小程序玩玩。git传送门-试驾小程序

开发工具

1.微信web开发者工具 方便我们在编译时能够实时的看到界面变化,我们并不用此来进行小程序的开发,只充当一个模仪器来使用。
2.visual Studio Code 微软新推出的一款及终端的编辑器,大大的提高了前端工程师的开发效率,这里我们也将用此来进行小程序的开发。没有了解过的同学也可以试做去使用下吧,良心推荐。。
3.Easy Mork easy-mock,通过它能快速生成模拟数据的服务,它能为我们提供一个数据接口url,然后使用wx.request({ url: url, .....})来发送数据请求,我的数据大部分都是通过Mork模拟的

创建小程序:

一、目录架构

我们创建小程序开发者工具帮我们自动生成的目录:

  • page文件夹, 页面文件夹 包含你所有的页面文件,至少包含.js .wxml .wxs后缀文件,.json可选
  • utlis文件夹 ,放置一些全局需要使用的js文件
  • app.js 控制全局的逻辑结构
  • app.json 配置一些全局数据,所有页面都要在此处注册
  • app.wxml 内容结构
  • app.wxss 全局样式

另外我们也需要自己创建,用于模块式的开发:

  • assets文件夹 用于我们存放所有的静态资源比如:icons/,images/,js/,.json/提供数据
  • module/文件夹 开发功能分模块开发,这样有便于多人协作,大大加快了开发效率,同时也提高了代码的可读性。
  • styles/文件夹 用于存放页面的css样式的文件夹,利用es6的模块可以提高代码的复用性和可读性,便于以后更方便的维护。

二、ES6模块化语言

上面我们讲到如何模块化的去处理我们的业务,实际上还是把业务和逻辑区分开来。但是我们如何优雅的去调用这些模块呢?一似乎我们会去寻找一种方法去解决它,没错我们的es6担任了这个使命。

  • 创建模块时我们需要使用 export default ModuleName 去创建这个模块。比如我们试驾小程序我们创建一个expory default testDrive这样就可以了,在这个模块中我们只要去定义它就好了,const testDrive =()=> {} 使用我们的箭头函数。
  • 引用模块时我们只需要 import testDriver from ‘xxxxx相应的文件夹’。

项目功能

  • 首页全屏轮播图优雅而大气 
  • scroll-view的使用,可滚动视图区域生成 
  • 视频播放,video组件使用 
  • 人工客服
  • 动态评论列表
  • 获取用户信息 
  • 利用mock 传数据 

具体功能实用技巧

一、首页全屏轮播图






{{item.sub_header}}
{{item.header}}
{{item.description}}







轮播图的一些处理技巧:

* 轮播图不在像我们以往单纯的放置图片的轮播图的效果了,我们这里动态的添加数据,为每个轮播图都配置一些desc来描述,更好的吸引顾客的眼球。
* 采用view来承载我们的desc,为他们添加相应的样式。
* 动态的绑定数据,每个轮播图的desc肯定不一样,这就需要我们去绑定数据使用我们的{{item}}。name数据从哪来呢?我们去data里去手动添加吗?就让我们在坚持一些。后面更精彩。

二、数据的来源

好吧!!我们不卖关子,直接接着上面的讲吧。数据来源处理方式可以分为两种:

  • 1.URL式的数据封装采用ajax请求,展示本地存储能力

    console.log(this.globalData);
    展示本地存储能力
    ajax请求
    wx.request({
    url: 'https://resources.ninghao.net/wxapp-case/db.json',
    data: {},
    method: 'GET',
    success: (response)=>{
    // console.log(response)
    Object.assign(this.globalData,response.data)
    console.log(this.globalData)
    },
    fail: (error)=>{
    // console.log(error)
    },
    })

    在我们小程序里,有着丰富的api,其中就用一种非常强大且实用的api: wx.request({}),上面的代码很详细的介绍了他的使用方法,我们直接今天重点吧。怎么去使用网上的数据呢?

    在我们每个page里内置很多函数,比如onLaunch(),onLoad()等,每个函数都有不同的作用。我们在page里声明一个全局globalData并且在onLaunch函数里使用Object.assign(this.globalData,request.data)为这个全局globalData赋值,把我们的数据存放进去。在我们首页的index.js去调用它slide: app.globalData.slides

  • 2.使用Easy Mork自己去创建数据,这里不是我们的重点,有兴趣的可以去了解下Easy Mork如何模拟数据吧。调用方法跟上述一样。例外我们呢可以直接引入一个js.json文件可以使用我们之前介绍的模块化去引用并配置到全局data里

三、页面跳转双向传递数据

一个小程序页面跳转总是必须的,但是页面的数据如何去传递呢?

data-id=”{{item.id}}” 在我们点击跳转事件绑定一个数据,这样我们就可以在下一个页面获取这个id了

onLoad: function (options) {
const id = options.id;
console.log(id)
},

然后我们再根据这个获取到的id进行相应的处理,这里小编在总结总结,以后写的详细一定。关于页面如何双向传递数据,时间有限,就先都这里,希望你们的点赞哦。
《模块化高效开发微信小程序—汽车试驾》


推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 微信小程序导航跟随的实现方法
    本文介绍了在微信小程序中实现导航跟随的方法。通过设置导航的position属性和绑定滚动事件,可以实现页面向下滚动到导航位置时,导航固定在页面最上方;页面向上滚动到导航位置时,导航恢复到原始位置;点击导航可以平滑跳转到相应位置。代码示例也给出了具体实现方法。 ... [详细]
author-avatar
细妹很快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有