前言

最近在做一个微信小程序版的个人博客,本来我还有点胆颤,毕竟也没正儿八经的去学一下,不过我之前接触过,而且web方面(网页制作)的基础还可以,所以斗胆就试一试咯,到今天为止,微信小程序页面终于算是基本做完了,自我感觉微信小程序和web制作没什么很大的区别,今天就根据我的项目博客来总结一下,web和微信小程序两者中比较,让我体会最深的一些知识点。

如果想要完全看懂以下内容,您需要对web方面的知识有一定的了解。并且以下内容我主要写的是web和微信小程序两者之间的区别,并没有对知识点讲解很详细,但是我相信看完这篇文章,还是对您有帮助的

1、两者标签之间的差异与联系

1.1 差异

在html中,我们最常见的标签有哪些呢?

举一些大家都熟悉的例子:
div、p、span、img、a、h1-h6等等标签,这里就不一一例举了,这里是指的网页中html标签元素。

那么微信小程序呢?
在我制作的微信小程序的个人博客中,我基本用的这几个标签:
view、text、image、block,搞定了所有博客页面,当然还有其它的标签元素。

1.2 联系

那么他们两者有没有什么联系呢?

在我制作微信小程序页面的时候,我把view当做div看待,将以前的div+css布局改成view+css,进行套用即可,都是一样的效果,span换做成text,用来包裹文字,通过css样式,就可以做成我们预想的效果。
当然还有我们的微信小程序的image和html中的img,虽然微信小程序的单词多了2个字母,但是作用和用法都是一样的。

总结:

虽然两者的标签元素各不相同,但是微信小程序里面的标签,按照制作web页面的思想,也可以独立完成微信小程序的页面制作,也就是说,微信小程序里面的标签和html里面的标签作用其实一样,只不过微信小程序里面的标签没有html里面分的那么细,但是将其作用都囊括进来了。

2.微信小程序组件–轮播图的制作

在我制作我的微信小程序个人博客的时候,我需要做出html里面的轮播图的效果,好了,难题来了,怎么制作呢?

在web网页制作的技术,我们有很多方法可以弄出轮播图的效果,最简单不过的就是直接用bootstrap(这是一个框架,大家不懂可以去百度一下,这里就不给大家普及了)里面现成的轮播图效果,缝缝补补就能改成自己想要的,用js写也可以。
但是在微信程序中,我是一个啥都不懂的新手呀,不知道咋写,怎么办

答案来了
微信小程序官方给了一个组件的使用,那么就是说,你可以像用bootstrap里面的轮播图一样,用微信小程序里面的组件–swiper ,然后根据官方文档里面的组件说明,适当的用一下里面的属性,就可以做出轮播图的效果,这里我就不详细的说了,官方文档比我说的要好(手动捂脸)。

有兴趣的大家可以看一看:

https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html

这是我在我的个人博客中做的轮播图,看代码
index.wxml

<view class="banner"><swiper indicator-dots="true" autoplay="true" circular="true" class="swiper-box" interval="4000"><block wx:for="{{bannerArr}}" ><swiper-item class="banner-item">image src="{{item.img_url}}" mode="aspectFill"></image></swiper-item></block></swiper>
</view>

js代码

Page({data: {bannerArr:[{img_url:'../../imgs/index/photo/1.jpg'},{ img_url: '../../imgs/index/photo/2.jpg' },{ img_url: '../../imgs/index/photo/3.jpg' },{ img_url: '../../imgs/index/photo/4.jpg' }]}})

总结:

组件是前端web制作中html+css+js原生中没有的,应该是参考了其它框架,然后给了一个组件的使用,不得不说是非常方便的。

3、css样式

在做css样式中,给我印象最深刻的有以下几个:
1.怎么选择整个页面
2.怎么让盒子里面的内容上下居中
3.尺寸单位的使用

3.1 怎么选择整个页面

我们在web页面制作中,给整个页面做样式的使用,我们会用到:
*或者body就可以给整个页面做样式。
例如这样:

*{color:red;
}
//或者这样
body{color:red;
}

但是在微信小程序中,这样写就会报错,是不可行的,那么在微信小程序中,就引入了这样一个标签样式选择,使用page就可以给整个页面做样式处理了
例如:

page{color:red;
}

3.2 怎么让盒子里面的内容上下居中

我们还是和web的样式做比较,在web的css样式处理中,我们最通常的做法,无非就是让其高度等于行高,就可以几乎让里面的内容上下居中了。
例如:
在div标签中有一行字

<div>上下居中</div>

使用高度等于行高

div{height:30px;line-height:30px;
}

使用上述,我们就可以使得里面的内容居中。但是微信小程序里面没有line-height这个属性,那么怎么做呢?

这里我们就要提到flex了,我们首先得让这个div盒子变为弹性盒子,然后配合align-item:cener就几乎可以使得盒子里面的内容上下居中,如果还不行的话,就还需要加入justify-content: center这个属性。
下面是我使用的一个场景,让其input框在页面上下居中和左右居中

.search{width: 100%;position: relative;background-color: white;height: 120rpx;display: flex;align-items: center;justify-content: center;
}

效果:

这里有关于弹性布局的详细使用:

https://www.cnblogs.com/huihuizhang/p/7998902.html

3.3 尺寸单位的使用

在web页面制作中,尺寸单位我们一般使用的是px,但是在微信小程序中,我都是使用的rpx,别问,问就是它最好。

官方文档的说明:

rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

4、微信小程序中js的使用

在web中,我们可以利用js操作dom来让其对应的元素做出相应的效果,但是微信小程序中js并不可以操作dom对象,那么我们如何来用js在微信小程序中做出我们想要的效果呢?

思路:我们通过用{{}}来绑定变量,从而实现我们想要的效果

我用我做的微信小程序版的博客来举个例子:
例如:我想要实现一个下拉的效果
首先,我们在wxml中写好代码,并绑定好我们js中的变量noticeArr

<view class="box"><block wx:for="{{noticeArr}}"><view class="notice" ><view class="notice-left">{{item.title}} <view class="notice-time">{{item.time}}</view></view><view class="notice-right" bindtap="change" id="{{index}}"><image src="{{item.isChange?'../../imgs/notice/down.png':'../../imgs/notice/up.png'}}"></image></view></view><view class="notice-content {{item.isChange?'show':'hide'}}">  {{item.content}}</view></block>
</view>

wxss中做好样式

/* pages/notice/notice.wxss */
.box{width: 100%;background-color: #eee;
}
.notice{background-color: white;display: flex;height: 100rpx;border-bottom: 1px solid #eee;justify-content: space-between;flex-wrap: wrap;align-items: center;padding: 0 20rpx;font-size: 34rpx;
}
.notice .notice-time{font-size: 20rpx;margin-left: 10rpx;display: inline-block;
}
.notice image{width: 50rpx;height: 50rpx;
}
.notice-content{width: 100%;height: 400rpx;font-size: 28rpx;background-color: #eee;letter-spacing: 4rpx;
}
.hide{display: none;
}
.show{display: block;
}

最后,我们通过绑定变量的方式,来操作我们想要的标签元素

Page({/*** 页面的初始数据*/data: {noticeArr:[{title:'关于停服公告',time:'2020-5-7',content:'测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',isChange:false},{title: '最新公告',time: '2020-5-7',content: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',isChange: false},{title: '最新公告',time: '2020-5-7',content: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',isChange: false},{title: '最新公告',time: '2020-5-7',content: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',isChange: false},{title: '最新公告',time: '2020-5-7',content: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',isChange: false}]},// 更改下标change(e){//找到对应noticeArr中的数组对象var index = e.currentTarget.id//找到对应noticeArr中的数组对象的属性var isTrue = "noticeArr[" + index +"].isChange";//通过前台绑定变量,来获取isChange的值var boo = this.data.noticeArr[index].isChange;//改变对应的值this.setData({[isTrue]: !boo});}})

效果

总结:

微信小程序中js使用与web中的js可以说是完全不同的,但是它却跟vue超级类似(就用这个词),所以你知道怎么使用vue,那么微信小程序的js也就不难了,无法就是通过绑定变量的方式去实现你想要的效果。

好了,今天的总结就到此结束了

很有幸大家能看到我的博客,希望通过和大家分享技术文章和其它话题文章,让我的学习成长路线变得有趣,并且提高自己的同时,也希望能帮助大家增长知识。哈哈哈,我个菜鸟太不要脸了,不管了,我会加油的

微信小程序与web页面制作的区别相关推荐

  1. 微信小程序--优购页面制作

    优购–项目 这个项目学习源自:黑马程序员微信小程序开发前端教程_零基础玩转微信小程序-哔哩哔哩 想要更深入的了解此项目,就去黑马程序员学习该项目.该项目个人觉得对于初学者来说是有很大的帮助的.做好该项 ...

  2. 微信小程序关于天气页面制作(第3章)

    一.制作天气微信小程序 1.先创建一个天气"weather"小程序 2.进入index.wxml.index.js.index.wxss文件,清空所有的内容,进入app.json文 ...

  3. Java Web项目,Android和微信小程序的初始页面配置

    Java Web项目 我们在Eclipse里开了Java Web项目之后,Run As Tomcat或者Apache服务器,本地运行,如果直接用http://localhost:8080访问项目,会发 ...

  4. 微信小程序与web前端的区别

    1 引言 刚接触小程序,会有很多错误的思路去编写,为了避免在代码方面出错,本文将对前端和小程序做一个区分. 2 问题描述 微信小程序与web前端的区别. 3 算法描述 在web的html中我们一般都是 ...

  5. 微信‘小程序’: web前端的春天 or 噩梦?

    最近大家看到这张图是不是都快吐了?这两天一睁眼就被这张图刷屏了 喵了咪的,点到哪里都是这个报道和新闻 最近因为工作 和生活略忙,爱吹文章的我,更新频率也低了,在这里抱个歉,希望大家理解和包容,希望&q ...

  6. 微信小程序:意见反馈制作(1)(可加图片)

    微信小程序:意见反馈制作(可加图片) 不同类型的微信小程序可能需要不同的意见反馈样式,仅以我做的为例,具体样式可自行修改 1.小程序自带意见反馈(非常简单) <button open-type= ...

  7. 微信小程序商城怎么在线制作

    今天珍奶bb给大家简单唠唠微信小程序商城怎么在线制作的流程? 在唠微信小程序商城制作流程前,先给大家科普一下当前的实体经济环境是如何的?制作一个微信小程序商城是否存在它的必要性.不用看具体数据,就直接 ...

  8. 微信小程序自定义提示框制作的简单方法

    微信小程序自定义提示框制作的简单方法 下面的时候提示框的结构 wxml部分 <!-- 提示框 --> <view class="showToast" wx:if= ...

  9. java webpack web项目_官方出品,微信小程序和 Web 端同构解决方案——kbone

    介绍 最近在琢磨一些小程序开发和移动web开发,偶然间在Github上看到了这样一个项目--kbone,一个致力于微信小程序和 Web 端同构的解决方案.微信小程序的底层模型和 Web 端不同,我们想 ...

最新文章

  1. FtpCopy数据定时自动备份软件(FTP定时备份)
  2. 3745路由器配置简单的dhcp server
  3. Linux学习之线程封装四:基于接口的封装
  4. 笔记-信息系统开发基础-信息系统开发方法
  5. Graph QL和SAP Graph的区别
  6. jaxb 生成java类_重用生成的JAXB类
  7. 使用aop解决事务问题(xml版)
  8. linux教程第五版第三章课后答案,linux 第三章 章习题.doc
  9. 第十篇学会编写python代码_Python 强化训练:第十篇
  10. large margin-人脸识别
  11. 任务栏流量监测工具 NetSpeedMonitor 在Windows 8下的安装使用
  12. Git和Cmake下载超级慢的解决方案
  13. 几何画板椭圆九种画法_最全的几何画板绘制椭圆教程
  14. REMUX,1080P,720P,408P,DVDrip、HDrip、BDrip、R5rip、PPVrip知识资料汇总
  15. BH1750FVI光强度传感器及其STM32驱动程序
  16. 输入一个整数求其位数和各个位数之和
  17. 磨金石教育摄影技能干货分享|人物系列摄影作品欣赏
  18. [51单片机]按键部分(软件消抖)
  19. 格拉姆--施密特(Gram-Schmidt)正交化方法笔记
  20. 时空旅行的可能性(无聊研究社)

热门文章

  1. iPad 屏幕镜像到 macbook
  2. ZigBee Cluster Library Specification Revision 6(ZigBee Document: 07-5123-06)
  3. ClickHouse 使用EXPLAIN 分析 SQL 执行计划
  4. 彻底卸载SQL Server2017
  5. 数据治理方法论和实践小百科全书
  6. Windows Intel Fortran编译netCDF-Fortran
  7. lambda表达式python菜鸟教程_[c#菜鸟]lambda表达式
  8. 向量和矩阵的求导公式
  9. 数学思想——1.SEIR模型
  10. 2020年百度之星·程序设计大赛 - 初赛一(前三题)