美文网首页
微信小程序环境搭建,flex布局及仿豆瓣登录界面

微信小程序环境搭建,flex布局及仿豆瓣登录界面

作者: YYFast | 来源:发表于2020-03-10 15:58 被阅读0次

    1. 开发环境的搭建

    1.1 小程序开发与网页开发的差异

    • 网页开发中的渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应
    • 网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作
    • 在小程序中,页面渲染和业务逻辑是分开的,分别运行在不同的线程中
    • 逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的 DOM API 和 BOM API
    • 因此非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的
    • 同时 JSCore 的环境同 NodeJS 环境也是不完全相同的,所以一些 NPM 的包在小程序中也是无法运行的
    • 小程序的性能介于 纯网页开发 与 原生(native)开发之间

    1.2 微信开发者工具

    微信开发者工具下载: 链接 (建议下载稳定版)

    注册小程序: 链接 (开发时需要用到AppID)

    image.png

    1.3 VSCode的安装

    由于微信开发者工具在写代码时,有些很常用的提示没有,不是很智能,所以可以选择VSCode来开发,并且可以下载微信开发相关的插件,非常方便;
    VSCode下载链接: 链接

    • VSCode常用开发插件安装:
      • 微信小程序助手
      • minapp
      • open in browser : 用来在浏览器中打开html文件的插件
    VSCode常用插件

    google浏览器快捷键

    • 打开新标签页快捷键: control (command) + t
    • 刷新当前页面: control (command) + r
    • 关闭自动翻译弹窗: 设置 -> 高级 -> 语言 -> 展开 -> 询问是否翻译非您所用语言的网页

    2. 创建小程序及仿写豆瓣登录页面

    打开微信开发者工具,新建一个小程序项目,AppID使用注册小程序获得的AppID:


    新建项目

    创建项目以后,会发现小程序的模块大体上可以分为4部分,如下图:

    • assert : 集,可以用来放图片,文件之类
    • pages: 每个不同的页面,每一个单独的页面包含4个文件,以登录页面login为例:
      • login.js : 交互响应
      • login.json : 页面配置
      • login.wxml : 页面样式
      • login.wxse : 页面结构
    • utils: 工具类
    • app类: 包括app开头的类文件,主要是用于描述整个小程序

    注意: 在右侧箭头中,存放的是你创建的pages位置,当你创建一个pages时会自动将路径保存到此处,所以有时候创建了pages后又删除了,这里的路径不删除编译会报错(亲身经历)

    模块

    2.1 关于Flex布局

    在小程序开发中建议使用Flex布局,在其它开发语言,如JS,Dart等也是用了Flex布局,此处引用的小码哥细致的总结和其课件:
    官方文档1
    官方文档2

    • 开启了flex布局的元素叫做flex container,里面的直接元素叫做flex items;
    • 设置display属性为flex或者inline-flex,则可以成为flex container;
      • flex container 以block-level的形式存在(块级元素:独占一行,宽度会占满整一行,后面不能在添加其他元素)
      • inline-flex: flex container 以 inline-level 形式存在(行内元素:开启flex布局以后其他的元素可以和当前元素在同一行)

    常用的CSS属性:

    常用css属性

    主轴:属性flex-direction:

    属性flex-direction

    主轴:属性justfy-content:

    属性justfy-content

    交叉轴:属性align-items:

    属性align-items

    交叉轴:属性align-content:


    属性align-content

    属性:align-content值对应的内容:


    align-content值对应的内容

    小程序发开建议使用尺寸单位rpx:

    尺寸单位rpx

    2.2 豆瓣登录界面搭建

    效果图

    豆瓣评分登录页面主要有logo,两个登录按钮,以及底部的协议信息组成,相对而言,是最简单搭建的一个页面;

    首先创建一个文件夹login,然后右击文件夹,创建page;
    注意: page的名字和文件夹的名称最好一致;
    创建完成以后,会出现login开头的4个文件;

    2.2.1 配置导航栏标题

    全局的标题在app.json文件中配置navigationBarTitleText:

    {
    "pages": [
     "pages/login/login",
     "pages/agreement/agreement"
    ],
    "window": {
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#fff",
     "navigationBarTitleText": "豆瓣评分",
     "navigationBarTextStyle": "black"
    },
    "style": "v2",
    "sitemapLocation": "sitemap.json"
    }   
    

    login.json中配置当前登录页面的导航栏标题:

    {
        "navigationBarTitleText": "登录"
    }
    

    2.2.2 login.wxml文件

    添加logo以及按钮:简单的点击建议直接使用最简单的控件view,绑定手势即可;
    最外层使用一个view作为容器,方便后面的布局

    • view.container class
    • view#container id
    • js里面字符串使用单引号,css里面使用双引号
    • 函数名: function{}
    • rpx紧跟数字,不留空格
    
    <view class="container">    
       <image class="logo" src="/assets/imgs/ic_launcher.png" />
       <view class="wechat btn-login" bind:tap="wechatLogin">微信登录</view>
       <view class="douban btn-login" bind:tap="doubanLogin">已有豆瓣账号登录</view>
       <view class="agreement">
           登录表示同意 
           <view class="open" bind:tap="openAgreement">豆瓣使用协议/隐私协议</view>
         </view>
     </view>
    
    

    2.2.3 login.wxss文件

    控件的布局

    .container {
        display: flex;          //外层container使用flex布局
        flex-direction: column; //主轴方向为上下
        align-items: center;    //交叉轴对齐方式为center
        padding: 0 40rpx;
    }
    
    .logo{
        width: 144rpx;
        height: 144rpx;
        margin: 40rpx 0;  //上下边距 40rpx 左右边距为0
    }
    
    .btn-login {                 //微信登录按钮和豆瓣按钮共有方法
        height: 80rpx;           //高度
        line-height: 80rpx;      //文本高度
        width: 100%;             //宽度占比100%
        text-align: center;      //文本居中对齐
        border-radius: 10rpx;    //圆角10rpx
    }
    
    .wechat {
        background-color: #42BD55;
        color: #fff; 
        margin-bottom: 30rpx;    //底部间距
    }
    
    .douban {
        background-color: #fff;
        color: #42BD55; 
        border: 2rpx solid #42BD55; //边框
    }
    
    .agreement{
        color: #9D9D9D;
        font-size: 24rpx;
        display: flex;        //使用flex布局
        position: absolute;   //相对布局
        bottom: 50rpx;        //相对底部50rpx (相对于当前页面)
    }
    
    .agreement .open{
        color: #4BB65C;
        margin-left: 15rpx;   //左边距15rpx
    }
       
    

    2.2.4 login.json文件

    Page({
      //微信登录按钮点击方法
      wechatLogin:function(){
        console.log('wechatLogin');
      },
      
      //豆瓣登录按钮点击方法
      doubanLogin(){
        console.log('doubanLogin');
      },
    
      //点击协议方法
      openAgreement:function(){  
        console.log('openAgreement');
        //使用navigateTo跳转到协议界面
        wx.navigateTo({
          //url 先往上层找到pages,然后再往下找agreement文件夹,然后找到agreement对应文件  
          url: '/pages/agreement/agreement',
          success: (result) => {},
          fail: () => {},
          complete: () => {}
        });
      }
    })
    
    

    小程序包大小有限制,所以页面实现也比较简单,图片等资源最好放在服务器.

    相关文章

      网友评论

          本文标题:微信小程序环境搭建,flex布局及仿豆瓣登录界面

          本文链接:https://www.haomeiwen.com/subject/csiidhtx.html