简书好文收藏程序员前端之美-小程序

由小程序开始打通你的全栈之门

2018-11-07  本文已影响207人  徐爱卿

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布

image

可能有些奇怪,为什么开头一张图片?留心的同学也许发现了,作词、作曲、编曲,全部都是一个人。有人说,别想赚李荣浩一分钱。玩笑罢了。

这篇博客讲了什么?

很多开发者,都写过客户端。但是又有多少同时写过线上运行的后台?又有多少人真正去了解过后台?去了解过SSL?去申请过证书?很多时候,大多停留在Demo的程度罢了。至少,我在学习写微信小程序之前,没有去真正写过线上运营的后台。这篇博客,就是来告诉你如何去从零打造你的跨客服端运行的微信小程序,同时打通你的后台能力。以小程序为动力,去了解一门新的,Android以外的一门新的知识。小程序全流程以及连同后台,成功上线。不依赖任何三方后台。 如果你想了解小程序、了解后台的入门知识,想入门全栈,以及前端与后端如何打通,这篇博客不二之选。

涉及知识点概论

小程序

注册与申请

这块相关知识,官方的申请指南还是比较友好的。我们可以申请个人小程序,一步步来就好了。 注册传送门

入门

说实话,我个人不是特别喜欢官方的文档,我更青睐于三方的文档。为什么这么说? 好久没有写过H5相关东东了,对CSS、JavaScript啥的,忘得差不多了。不过感谢小程序、感谢自己,又让我拾起来了这些知识。 这里我推荐的是:W3Cschool,这里能够快速搜索到相关API,相关知识点。

image

除此之外,如果你对CSS不是特别了解,这里还有很多的CSS相关的知识。

我特别喜欢他的搜索功能,搜索的还是比较快,比较准确的。比如,很多CSS不会的在这里直接就可以搜索到满意的答案。 image

这不是广告,是资源,是我这段空余时间学习的总结。就跟当年学习Web时,老师也推荐过给我W3Cschool一样。

我对小程序的感觉概论

页面基本构成

image

可以看到各个文件各司其职,分工明确。可以这么说,小程序本质是一个MVVM框架,是基于数据驱动的,就跟React和Vue差不多。

生命周期

小程序跟我们的Android相同的是也有生命周期,类似的页面加载(onLoad)、 准备(onReady)、显示(onShow)、隐藏(onHidden)...,学过Android的对这些还是比较好理解的。

UI

一些原生UI,如:text、image、button 啥的,都有的。稍微有点耐心,学习起来还是比较快的。布局这块怎么说呢,了解过CSS、H5的应该知道的,他的布局是写在CSS中的,也就是WXSS中的。多写写、多看看,百度、Google走起来,还是可以的。我就是这么过来的额。

数据渲染

小程序中,数据渲染更多类似于下面这样:

<text>{{nickName}}</text>
this.setData({
 nickName:'非常6+1'
})

这样就完成了数据的渲染,其他的啥的,也是类似的套路。so easy !

路由

Android里面打开新页面startActivity,数据携带可以使用intent以及其他。 小程序里,使用wx.navigateTo('/pages/main/main?params=666') 打开新页面, 获取数据使用onLoad: function(options)生命周期的options.params就可获取传递的值。就是这么简单。

网络请求

小程序发起网络请求,给我们提供了十分简洁的API,只需要使用:

wx.request({
  url:'www.baidu.com',
    success:function(res){
        console.log(res.data)
    }
})

就可以发送一个GET请求了。不过为了安全,小程序支持的域名必须要使用HTTPS协议。这也就意味着,我们要申请SSL证书。一步一步来。

其他

了解了这些简单的概论知识,后面再看文档就简单了许多了。期待你完成你的第一个小程序。

小程序这块差不多了后,就搞起域名吧,这是个大头。

域名

小程序如果要与后台进行HTTP数据传输必须配置: 小程序reqeust配置

购买域名

我是在万网上购买的域名 image 可以看到top顶级域名才9元/年。可以购买一个玩玩。 购买后,你就可以在你的域名列表中查看到你的域名了。 image

域名解析

官网的域名解析还是比较友好的,一步步来是没问题的。阿里域名解析

SSL证书

要知道SSL证书是要钱的,看看: image 好可拍,好可怕。不急,有免费的。 image

喜出望外有木有,趁着免费赶紧买几个,我买了10几个~~ 下一步就是给域名添加上SSL证书了。 阿里云SSL证书控制台

image

到这里,你的HTTPS打造完成,不过要等一会,因为SSL生效,以及同步到微信支持确认是HTTPS需要一段时间。我那个时候等了半天。

备案

这里是重点,在微信上配置的HTTPS域名需要网上备案的。不过阿里给了我们备案的方式,至于如何,在阿里的控制台上可以找到。这里不再赘述了。一定要备案!!!

服务端

申请ECS云服务器

一家亲,我这里仍然选择阿里的ECS云服务器。我当时买的是学生套餐,大概RMB140/年,现在应该也有适当的优惠,也可以去看看其他家的。 购买的时候选择系统镜像的时候,推荐使用CentOS,系统版本的话,我这里选择的7.3 image

这里附上鸿洋郭霖之前的关于购买云服务器的指南。我这里购买部署完毕后,并没有立即安装Tomcat,后面会说明为什么没有安装。不过, XfptXshell 还是要安装的,以后肯定会用到的。 ##服务端框架 服务端框架,推荐使用 SpringBoot ,只要你会Java,了解注解一些简单知识,拿过来就可使用了。一个简单的GET请求,下面几行代码就可以搞定了:

@Controller
@EnableAutoConfiguration
public class SampleController {
 @RequestMapping("/")
 @ResponseBody
 String home() {
   return "Hello World!";
 }
}

Spring Boot的一些优点

Spring Boot 配置到服务器

这个不用配置,你只需要将编译好的jar包使用 Xftp 工具扔到你的云服务上,然后使用 Xshell 执行java -jar xxx.jar命令后,这个项目就在运行了。这个时候怎么发请求呢?简单,将上面的localhost换成你的ECS云服务器的公网地址(例如:115.239.210.27/hello)即可。

image

对HTTP协议了解的孩子,这个应该不难理解。可以看看这篇短小精悍文章,了解下HTTP协议。

打通域名与IP地址

为什么要打通?因为微信小程序的网络配置是不支持直接填IP地址的。所有我们需要进行域名解析。假设我们购买的域名是:www.baidu.com,我们的服务器公网地址是115.239.210.27,那么如何完成域名到公网地址的映射关系?也就是域名解析DNS。这里提供万网域名解析图文视频指南。可以说很贴心了。 这一步完成后,我们原来是使用115.239.210.27/hello访问,现在就可以使用http://www.baidu.com/hello访问了。还不能使用https访问。

配置HTTPS

微信小程序的域名必须是HTTPS协议

image

在最前面我是在阿里购买的免费的SSL证书,这里就是使用到的地方。在这里配置好,部署到云服务上后,就可以使用https://www.baidu.com/hello访问了。

到这里,服务端的框架选择以及配置大都讲完了。下面我们来说下数据库。

Spring Boot JPA (MySQL数据库)

在Spring Boot中使用数据库,真的是太简单了。如果你了解使用过 GreenDAO,就更容易上手了。

<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
</dependency>

这里有个Sping Boot JPA入门,或许是你需要的。

安装MySql

CentOS 7 安装MySQL 注意,在阿里云的CentOS中,你需要关闭防火墙。否则可能导致外部无法访问连接到你的远程数据库。

界面简单易操作,不过需要激活。不过这里有....自己看吧。你懂的~~软件安装指南

推荐

可以先使用Navicat 调试好db后再连接数据库

到这里,我们介绍了小程序SSL域名Spring BootMySql等等。真的不敢想象,我竟然把这些都聊了一遍~~

共勉

PS:我的Server一直在后台运行着,当然,小程序一直可以使用。还有,我这边服务端是基于Spring Boot的,所以也跟后端的哥们聊着学习的。

上一篇下一篇

猜你喜欢

热点阅读