mpvue?

{{}} 在vue和小程序中的区别?

    01 小程序中{{}}和vue中的{{}}用法基本一致,可以显示data中的数据,可以写表达式

    不一样的地方?

    01 小程序的{{}}可以写在属性中

    02 小程序的{{}}不能使用方法的调用

微信小程序中的 wx:key

    01 wx:for 可以遍历数组中的数据

    02 wx:for  一定要指定wx:key,不然会报一个警告

    03 wx:key  的值有两种方式

        如果遍历的值是一个对象,wx:key可以是对象中某一个唯一的属性 。 

        如果数组中的值是一个字符串,wx:可以指定为*this, *this表示字符串本身。

在微信小程序中注册事件分为两种

    bind+事件:  bind注册的事件会冒泡 

    catch+事件:   catch注册的事件不会冒泡

在方法中如何放到data中的数据?

    大坑:在微信小程序中的数据,数据不是双向绑定

    data中的数据发生了改变,视图中的数据并没有跟着改变

    直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。

方法一
data: {
msg:"hellow 小程序"
},
change(){
this.setData({
msg:'哈哈哈' //要修改的参数和值
})
}
通过 this.setData({ }) 方式进行修改,可以实现双向绑定
方法二  
data: {
msg:"hellow 小程序"
},
change(){
// 修改msg的值
this.data.msg="你好啊"
// 需要进行一次同步
this.setData(this.data)
}

在小程序中将数据保存data有一个专用方法

this.setData({

  属性名:新值

})

如何获取input文本框的值?

    01通过e.detail.value

    02如果注册事件的时候,想要传递参数,给当前元素添加自定义属,通过e.currentTaget.dataset来获取值。

js中的data中发生了改变,页面中的数据并不会改变,调用setData同步才行

input框中的值发生了改变,js中的数据并不会跟着变,自己注册事件,自己修改data中的数据。微信小程序中不支持双向绑定

微信支付

https://blog.brain1981.com/1946.html

小程序的生命周期,app.js页面(创建一个小程序的实例,只会调用一次)

//app.js   初始化小程序 , 做一些通用的操作
App({
// 小程序初始化的时候执行的钩子函数,全局只会触发一次
// 小程序中一次性的操作,都可以放到onLaunch中
// 比如: 登录 获取你的用户信息
onLaunch(){ //做登录 获取用户信息等
console.log('onLaunch','小程序初始化好了')
},
// 只要小程序显示出来了,就会执行
onShow(){
console.log('onShow','小程序显示了')
},
// 小程序隐藏的时候触发
onHide(){
console.log('onHide','小程序隐藏的时候')
},
// 小程序脚本发生错误就会触发
onError(){
// 可以把错误的信息收集起来,放到数据库
console.log('onError','报错了')
},
// 小程序哟啊打开的页面不存在的时候触发
onPageNotFound(){ }
})

Page页面(创建页面)

// pages/index/index.js
// page方法用来创建一个小程序的页面
Page({ // 页面加载的时候会执行onLoad,一次
onLoad () {
console.log('onLoad','页面加载了')
}, // 页面显示
onShow () {//一般在这里发送ajax
console.log('onShow','页面显示的时候就会执行')
}, // 页面隐藏
onHide () {
console.log('onHide', '页面隐藏的时候就会执行')
}, // 表示页面已经渲染完了
onReady (){//可以发送ajax
console.log('onReady', '页面渲染完了')
wx.setNavigationBarTitle({
title: 'yyyy'
})
},
// 页面卸载时候触发
onUnload () { } })

    

小程序发送ajax请求

// pages/sy/sy.js
Page({
data: {
imgList: [],//用于存储轮播图数据
}, onShow: function () {
wx.request({
url: 'https://locally.uieee.com/slides',
method:'GET',
dataType:'json',
success:(res)=>{
this.data.imgList=res.data
//同步
this.setData(this.data)
}
})
} })

微信开发工具下载地址

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

创建项目

1  微信公众平台 :   https://mp.weixin.qq.com/

2 小程序秘钥  AppID  :   左侧导航栏----开发---开发设置

云开发  

详情----调试基础库 2.2.5

注意事项:每一个小程序项目不能超过2M

微信小程序中常见的标签  wxml

<view></view> 相当于html中的 div块级元素
<text></text> 文本,相当于 span函内元素
<image></image> 相当于 <img src=''/>
<form></form> 表单
 
文本标签
selectable  是否可以复制
 
图片
<image src='' lazy-load='true'></image> 图片懒加载
lazy-load='true' : 等图片下载完成后再显示图片内容
图片默认大小  320*240

wxss

(1)单位:rpx     -----响应式像素。可以根据屏幕的宽度自适应调用图片文字容器大小

(2)引入外部的样式文件     @import './base.wxss'

关于RPX,移动端开发你使用的是什么像素?

示例: iphone6(2)

逻辑像素 * dpr = 物理像素

iphone6    375px * 2 = 750rpx

小程序,引入其它样式文件

    将项目公共样式内容统一保存在一个文件中

style/common.wxss

@import  '../../style/common/wxss'

小程序开发文档

https://developers.weixin.qq.com/miniprogram/dev/framework/

微信公众平台--小程序(重点)-第三方组件库(样式库) 

云开发兼容性

小程序第三方组件库(样式库)

Vant Weapp

https://youzan.github.io/vant-weapp/#/intro

-WeUI

-iView Weapp

小程序 配置文件

project.config.json  项目配置文件

app.json                   项目全局配置文件

exam01.json    组件配置文件

app.json    全局配置文件

如果一个选项添加 app.json 中 所有的组局都会生效

微信小程序中 js 与 网页 程序中 js有什么区别?

    ECMA 基本类型: string  ;number; boolean;undefined ; null;

    ECMA 对象类型:Date ; Math ; RegExp ; Array ; Function ;...

    DOM/BOM 不能使用,小程序中写  document.getElemnt会报错

    

微信小程序循环  wx:for

    <view wx:for="{{数组名称}}" wx:key="index">
{{item}} 当前对象
{{index}} 当前元素下标
</view>
wx:for="{{循环数组名称}}"
wx:key="index" 数组元素下标(排序规则),快速排序

wx:if

    <view wx:if="{{condition}}"></view>
condition:表达式 true false
true 当前元素正常显示
false 当前元素删除

  if   elif   else

<view wx:if="{{condition}}">111</view>                 // if

<view wx:elif="{{condition}}">222</view>             // else if

<view wx:else>333</view>            // else

hidden

<view hidden="{{condition}}">内容</view>

condition:表达式 true false

true隐藏  false 显示

问题:什么时候使用if 什么时候使用hidden

(1)如果此元素需要频繁切换使用hidden

(2)如果此元素在运行中不大可能改变则 wx:if 较好

微信公众平台--小程序--js/事件-事件

pc端项目   屏幕宽度 > 970px 操作:鼠标键盘

移动端项目 屏幕宽度 < 970px 操作:手指

移动端项目:

    touchstart  当手指触碰到屏幕时发生的事件,不管几根手指

    touchmove   当手指在屏幕上滑动的时候触发

    touchend   当手指离开屏幕时候触发

    zepto.js    相当于移动端的jquery

    tap   触碰一次

    longtap 长按一次 超过350ms

    swipe  滑动

    swipeLeft 滑动

  

微信小程序事件分为两种

    小程序事件分为两种 

(1)冒泡事件:当一个组件上事件被触发后,该事件向父元素传递

(2)非冒泡事件:当一个组件上事件被触发后,不向父元素传递

小程序绑定事件方式

-支持事件冒泡

<view bind事件名="事件处理函数"></view>

-不支持事件冒泡

<view catch事件名="事件处理函数"></view>

例子

支持冒泡

    <view bindtap='handle2'>父元素
<view bindtap='handle1'>子元素</view>
</view>

不支持冒泡

   <view catchtap='handle2'>父元素
<view catchtap='handle1'>子元素</view>
</view>

小程序--生命周期(组件)

    组件生命周期:一个组件从创建开始到使用最后销毁过程

  /*
组件创建成功后触发一次
(1)发送ajax请求
(2)获取传递参数
*/
onLoad (options) { }, /*
组件渲染成功后触发一次
*/
onReady () { }, /*
显示组件
*/
onShow () { },

/*
隐藏组件
*/
onHide () { }, /*
销毁组件
*/
onUnload () { },

 上拉加载  下拉刷新

  /**
* --监听用户下拉动作 (用户下拉操作,刷新操作) 下拉刷新
* 小程序默认禁止 用户下拉操作
* 修改默认行为,激活下拉。
* 01 全局修改 app.json 文件 window 下 修改
* "enablePullDownRefresh": true 允许下拉
* 02 当前组件修改 在当前组件的json文件中 修改
* "enablePullDownRefresh": true 允许下拉
*/
onPullDownRefresh () {
console.log('下拉刷新')
}, /**
* 页面上拉触底事件的处理函数 (上拉触底,翻页加载) 上拉加载
*/
onReachBottom () {
console.log('上拉加载')
}

微信小程序组件跳转  wx.redirectTo({}) -----不能返回,因为跳转后把原先的组件销毁了

利用 wx.redirectTo({}) 实现跳转   

比如       组件1   跳转到  组件 2。 会先卸载组件1  然后创建组件2

 

保留并且跳转

wx.navigateTo({

url:"/pages/comment/comment"

})

小程序--云开发

    小程序与腾讯云合作新方案[云开发] 

    云开发==[云数据库+云存储+云函数]

云数据库:数据增加/删除/修改/查询....

云存储:上传文件/下载文件/分享文件/管理文件....

云函数:获取appid/调用高级权限操作 (没有跨域)

小程序--开通云开发

小程序开发工具-->"云开发" 开通

环境名称:[web-test-01]英文 数字 -

环境id:[] 自动生成环境复制下来

小程序--云数据库(mongodb nosql数据库)  

  云开发提供一个JSON数据库提供2GB免费空间

 

关系型数据库

文档数据库

数据库 database

数据库 database

表  table

集合 collection

行   row

记录 record/doc

列   column

字段 field

  #关系型数据库:适合复杂数据关系  企业内部软件系统

  #文档型数据库:数据关系简单 频繁查询,更新   app

数据类型

String 字符串

Number数字

Object 对象

Array数组

Bool   布尔

GeoPoint 地理位置点

Date   时间(客户端)

NULL

小程序--云数据库操作

(1)控制台:  创建集合

(2)云函数:

(3)小程序操作:

通过小程序操作云数据库

(1)通过控制台 创建集合  比如 web2008

(2)初始化默认数据库

    const db = wx.cloud.database();

(3)向集合中添加新记录

    db.collection('集合名称').add(

      {

       data:{name:'zxh',age:'18'},

       success:function( res ){ },

       fail:function(err){ }

      }

    )

add() 向集合中添加数据

data:{} 数据

success 添加成功回调函数

fail    添加失败回调函数

  常见错误:

   (1) -502005 database collection not exists

   #集合不存在 web1903

   原因1:拼写错误db.collection("拼写错误")

   原因2:没有集合

   (2)如果创建二个环境

    const db = wx.cloud.database({

     env:"环境id"

    });

   env:环境

   (3) errCode: -501005 invalid env

   原因:env:"环境id错误"

小程序操作云数据库--更新

 db.collection("集合名称").doc("当前记录id").update({

  data:{

    属性名:值

  }

}).then( res=>{

  console.log(res)

} ).catch(err=>{

  console.log(err)

})

小程序操作云数据库--删除

    db.collection("集合名称").doc("记录id") .remove().then(res=>{}).catch(err=>{})

    #注意事项:通过小程序一次只能删除一条数据

小程序云开发-云数据库--查询

   (1)查询所有数据

 db.collection("集合名称").get().then(res=>{}).catch(err=>{})

get:获取查询

then:查询成功后获取返回内容

res  查询结果

catch:查询失败

err   失败原因

   (2)查询指定数据

     db.collection("集合名称").where({name:"jerry"}).get().then(res=>{}).catch(err=>{})

where查询条件

get   获取查询

then  查询成功后获取返回内容

res    查询结果

小程序云开发-云函数

   云函数:特殊函数将其保存小程序云上(腾讯云)

   云函数从功能很多优点:权限高 完成复杂操作

 #注意事项:开发云函数要求本地下载安装nodejs v8.0 以上

小程序云开发-云函数-求和函数 sum

(1)开发工具 coludfunctions

鼠标右键->新建node.js云函数

(2)云函数名称 sumc

(3)打开index.js

(4)添加云函数代码

     exports.main = async (event,context)=>{

       return {

          sumc:event.i + event.j

        }

     }

exports 导出    event 事件对象(获取用户参数)

main   主函数  context 上下文对象(获取用户信息)

async   导步(ES7语法)

(5)上传部署

右击创建并部署,云端安装依赖

(6)测试云函数

(7)在小程序中调用开发云函数

     wx.cloud.callFunction({   //调用云函数

       name:"云函数名",    //云函数名

       data:{i:1,j:2}         //参数

     }).then(res=>{          //调用成功

       console.log(res);

     }).catch(err=>{         //调用失败

       console.log(err);

     })

#注意事项:如果你旧版本小程序工具没有server-sdk报错

#右击 countFunctions 在终端中打开

#npm install --save wx-server-sdk@latest

常见错误

(1) Error: errCode: -404011 cloud function execution error

原因:

-调用云函数不存在

-调用去函数没有上传

-云函数名子拼写错误

小程序云开发-云函数-login 登录

小程序云开发-云函数-批量删除

云数据库web2019 同名记录 name:"zxy"

云函数目的:删除name:"zxy"

async:异步ES7 异步执行函数

await:等待如果执行耗时任务启动关键字等待任务

执行完毕

const cloud = require('wx-server-sdk')  
cloud.init()// 初始化 cloud
const db = cloud.database();//初始化云数据库

    exports.main = async  (event,context)=>{

      try{ // await 等删完之后再返回结果

        return await db.collection("web2019").where({

            name:"zxy"

         }).remove();

      }catch(e){

         console.log(e);

      }

    }

小程序云开发-云存储-5GB

(1)用户上传文件流程

-用户选择相册或拍照

-小程序上传所选中图片

-云存储返回图片 fileID  //在云存储图片地址

(2)开发流程

-选择图片

wx.chooseImage({
  count: 1 , //一次选择几张图片默认 9
  sizeType: ["original", "compressed"], //选中图片类型 (原图/压缩)
  sourceType: ["album", "camera"], //图片来源 (相册/相机)
  success: function (res) { //选中图片成功回调
  res.tempFilePaths //选中图片地址,返回数组
  }
});

-上传图片

wx.cloud.uploadFile();

cloudPath: 上传成功后新文件名

filePath:   选中图片名

success:res=>{  上传成功

console.log(res.fileID);

上传成功后返回指定文件路径

}

例子:如下

Page({
data: {}, downP(){//自定义构造函数downP(){ }
wx.chooseImage({
count: 1 , //一次选择几张图片默认 9
sizeType: ["original", "compressed"], //选中图片类型 (原图/压缩)
sourceType: ["album", "camera"], //图片来源 (相册/相机)
success: function (res) { //选中图片成功回调
var list = res.tempFilePaths //选中图片地址,返回数组
var file = list[0] //选中的图片地址
wx.cloud.uploadFile({ //上传图片至云存储
cloudPath: +new Date()+".jpg", //时间戳起一个名字
filePath: file, //选中的要上传的图片地址
success: res => {
console.log(res)
console.log(res.fileID); //上传成功后返回指定文件路径
}
}); } }); },
onLoad: function (options) {},
onReady: function () { },
onShow: function () {},
onHide: function () {},
onUnload: function () {},
onPullDownRefresh: function () {},
onReachBottom: function () {},
onShareAppMessage: function () {}
})

 

综合例子

文件上传与显示功能:利用云函数将图片上传到云存储,再将云存储中的图片地址存储到云数据库的集合中

*云数据库创建集合 myphoto  目标:保存上传文件fileID

*创建组件 pages/myphoto/myphoto

*添加按钮 "上传图片"

*将上传文件fileID保存myphoto中

*创建按钮 "显示图片"

*获取集合中myphoto 创建循环遍历 fileID

<image src="{{item.fileID}} "></image>

const db = wx.cloud.database();       //初始化默认数据库
Page({
data: { // 通过this.setData({}) 添加数据
list:[] //云存储图片fileID
},
showPic(){//此函数负责获取myphoto集合所有记录,并且显示在模板中
db.collection("myphoto").get()//获取集合中所有的记录
.then(res => {
var result = res.data
console.log(result)
this.setData({ //向data中添加数据
list:result
})
})
.catch(err => { console.log(err)})
},
myupload(){
wx.chooseImage({//此函数负责选中图片并且上传至云储存,上传成功后将图片fileID保存myphoto集合中
count: 1, //一次选择几张图片默认 9
sizeType: ["original", "compressed"], //选中图片类型 (原图/压缩)
sourceType: ["album", "camera"], //图片来源 (相册/相机)
success(res){ //选中图片成功回调
var list = res.tempFilePaths //选中图片地址,返回数组
var file = list[0] //选中的图片地址
wx.cloud.uploadFile({ //上传图片至云存储
cloudPath: +new Date() + ".jpg", //时间戳起一个名字
filePath: file, //选中的要上传的图片地址
success(res){
var fID = res.fileID //上传成功后返回指定文件路径
db.collection('myphoto').add(//向集合中添加数据
      {
       data: { fileID : fID },
       success(res){console.log(res)},
fail(err){ console.log(err) }
      }
    )
},
fail(err){ //上传失败 返回err
console.log(err)
}
});
},
fail(err){
console.log(err)
}
});
},
onLoad: function (options) {
},
onReady: function () {
},
onShow: function () { },
onHide: function () { },
onUnload: function () { },
onPullDownRefresh: function () { }, /**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () { }, /**
* 用户点击右上角分享
*/
onShareAppMessage: function () { }
})

环境id报错,如果有两个环境id,一直报错,配置如下

小程序--商城项目-下载安装vant 第三方库

有赞团为vant网站

https://youzan.github.io/vant-weapp

  (1)创建项目描述文件 package.json   默认没有package.json,需要自己创建 如何创建? 如下

右击 miniprogram 目录->选中在终端中打开

输入命令 npm init    回车 回车 ..

#npm init 功能生成项目描述文件 package.json

#执行成功后生成 package.json文件

 (2)通过npm 安装vant 第三方组件库

右击 miniprograme 目录->选中在终端中打开

输入命令 npm i vant-weapp -S --production  回车

#安装成功看到文件夹 node_modules

#右击miniprograme 在硬盘打开

    (3)点击工具菜单-->构建npm

#将node_modues内容复制一份 miniprogram_npm

#常见错误 module .. not defined

#请重新登录

解决:点击工具菜单->构建npm

    (4)点击工具菜单->详情 (点击右上角详情)

[*] 使用npm 模块

 (5)在组件中配置要使用哪个第三方组件,比如使用button

"usingComponents": {

"van-button": "vant-weapp/button/index"

}

#注意:组件路径修改与miniprogram_npm下目录结构相同

    (6)在当前组件中使用button按钮

<van-button type="default">默认按钮</van-button>

小程序--商城项目-娱乐

(1)电影列表从"豆瓣网"下载最新电影列表

豆瓣网热映电影列表

http://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4a&start=0&count=10

第一个部分:接口地址

第二个部分:apikey=密钥(别人开发者密钥)

第三个部分:start  第几条记录开始

count 本次查询几条记录

(2)如何获取"豆瓣网"热映电影列表-发送ajax请求

      小程序有二种请求数据方式

 

小程序端

云函数

发送方法

wx.request({})

下载第三方ajax 库 (request)

协议支持

只支持https

根据第三方库决定

是否备案

经过ICP备案

可以不备案

域名个数

最多20个

无限制

 

开发云函数获取"豆瓣"电影列表

-创建云函数 movielist3

-点击movielist3 鼠标右键->终端打开

#注意下面命令有顺序

npm install --save request

npm install --save request-promise

#此次请求使用ajax库 request-promise

#上面库是request-promise 依赖库

开发云函数

(1)引入 request-promise 库

var rp = require("request-promise");

(2)导出创建main函数

exports.main = async (event,context)=>{}

event:事件对象保存请求参数

context:上下文对象  用户openid appid..

(3)创建url 请求地址

var url = `http://api..&start=${event.start}

&count=${event.count}`;

(4)rp(url)   返回查询结果

 代码如下

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数movellist3,此函数功能:向豆瓣网发送请求,获取最新热映电影列表
// 01 引入第三方ajax库 request-promise
// 02 创建main函数
// 03 创建变量 url 请求地址
// 04 请求rp函数发送请求并且将豆瓣返回电影列表返回调用者
var rp = require("request-promise");
exports.main = async (event, context) => {
return event
var url = `http://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${event.start}&count=${event.count}`
return rp(url) //发送请求
.then( res=>{ //请求成功
return res
} )
.catch( err=>{
console.log(err)
} )
}

 

上拉加载

拼接

// pages/home/home.js
Page({
data: {
list:[]
},
loadMore(){
wx.cloud.callFunction({ //调用云函数
name: "movielist3", //云函数名
data: { start:this.data.list.lenght, count:10 } //参数
}).then(res => { //调用成功
var obj = JSON.parse(res.result)//将字符串转为js对象
var rows = obj.subjects;//保存电影列表的数据
rows = this.data.list.concat(rows)//将电影列表数组拼接操作
this.setData({
list: rows //保存电影列表subjects电影列表
})
console.log(obj.subjects)
}).catch(err => { //调用失败
console.log(err); }) },
onLoad: function (options) {
this.loadMore()
},
onReachBottom: function () {//页面上拉触底事件的处理函数
this.loadMore()//发送请求下载下一页的数据
},
onReady: function () {},
onShow: function () {},
onHide: function () {},
onPullDownRefresh: function () {},
onShareAppMessage: function () { }
})

商城--娱乐详情完成-准备

(1)创建组件 comment

(2)创建云函数getDetail3 获取某部电影详细信息

(3)下载安装两个依据ajax

npm install --save request          #依赖库

npm install --save request-promise   #请求库

#每个云函安装自己所需依赖

(4)检查url 豆瓣电影详情 url

http://api.douban.com/v2/movie/subject/26794435?apikey=0df993c66c0c636e29ecbb5344252a4a

(5)上传部署云函数

(6)云测试

小程序发送ajax

const cloud = require('wx-server-sdk')
cloud.init()
/* s
功能:发送ajax请求获取豆瓣电影详情内容
01引入第三方库request-Promise
02创建main函数
03向豆瓣发送请求
04返回豆瓣电影详情内容
*/
var rp = require("request-promise");
exports.main = async (event, context) => {//event--接收参数, context--上下文对象
var url = `http://api.douban.com/v2/movie/subject/${event.id}?apikey=0df993c66c0c636e29ecbb5344252a4a`
return rp(url) //发送请求
.then(res => {return res} )//函数执行成功
.catch( err => {console.log(err)} )
}
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数movellist3,此函数功能:向豆瓣网发送请求,获取最新热映电影列表
// 01 引入第三方ajax库 request-promise
// 02 创建main函数
// 03 创建变量 url 请求地址
// 04 请求rp函数发送请求并且将豆瓣返回电影列表返回调用者
var rp = require("request-promise");
exports.main = async (event, context) => {
var url = `http://api.douban.com/v2/movie/in_theaters?apikey=0df993c66c0c636e29ecbb5344252a4a&start=${event.start}&count=${event.count}`
return rp(url) //发送请求
.then( res=>{ //请求成功
return res
} )
.catch( err=>{
console.log(err)
} )
}

 

商城--娱乐详情完成-开发(第三方组件库 vant)

https://youzan.github.io/vant-weapp/  文档手册

(1)输入框

(2)打分

(3)上传按钮

商城--娱乐详情完成-输入框

  (1)查看手机

  (2)打开配置文件comment.json

#删除多余目录 path/to/dist

{

"usingComponents": {

"van-field": "vant-weapp/field/index",

"van-button": "vant-weapp/button/index",

"van-rate": "vant-weapp/rate/index"

}

}

  (3)在模板中使用组件 comment.wxml

<van-field

value="{{ value }}"               //用户输入内容

placeholder="请输入用户名"     //占位符

bind:change="onChange"        //输入事件

/>

(4)在模板中使用组件 comment.js

Page({

data: {

value: ''

},

onChange(event) {

console.log(event.detail);

}

});

背景虚化 效果

/* pages/comment/comment.wxss */
/* 1 电影背景图片虚化效果 */
.detai-container{
/* position: relative; */
height: 400rpx;
filter: blur(40rpx); /* 模糊滤镜 */
opacity: 0.9 /*透明度 */
} /* 2 电影背景遮罩层,显示电影背景底图 */
.detail-mask{
position: absolute;
width: 100%;
height: 400rpx;
background: #333; /* 深色的背景 */
top:;
left:;
z-index: -1; /*显示在底层*/
} .detail-info{
position: absolute;
display: flex; /*弹性布局*/
top:;
left:;
width: 100%;
height: 400rpx; /*高度与遮罩层一致*/
padding: 20rpx
} .detail-img{
width: 280rpx; /* 大图宽度 */
height: 90%; /* 大图高度 */
margin-right: 24rpx; /* 与右侧文字间距 */
}

微信加载中

wx.showLoading({
title: '加载中...',
})
 
wx.hideLoading() //加载完调用
 
 
匹配图片后缀的正则 

var suffix = /\.\w+$/.exec(item)[0]

关于微信小程序的一些总结的更多相关文章

  1. 微信小程序开发心得

    微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...

  2. 微信小程序体验(2):驴妈妈景区门票即买即游

    驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...

  3. 微信小程序(微信应用号)组件讲解

    这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...

  4. 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新

    微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...

  5. 通过微信小程序看前端

    前言 2016年9月22日凌晨,微信官方通过“微信公开课”公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众 ...

  6. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  7. 来自于微信小程序的一封简讯

    9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...

  8. 微信小程序前端源码逻辑和工作流

    看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.j ...

  9. 微信小程序初探

    做为码农相信大家最近肯定都会听到微信小程序,虽然现阶段还没有正式开放注册,但大家可以还是可以开发测试. 到微信的WIKI(http://mp.weixin.qq.com/wiki?t=resource ...

  10. 【微信小程序开发】之如何获取免费ssl证书【图文步骤】

    微信小程序要求所有网络请求都走ssl加密,因此我们开发服务端接口需要配置为https 这篇文章介绍一下如何 在 startssl 申请一个免费的ca证书. 1. 打开网站  https://www.s ...

随机推荐

  1. [python 学习] lambda

    #!/usr/bin/python # -*- encoding:utf-8 -*- # lambda parameter_list: expression f = lambda x,y: x + y ...

  2. 将ubuntu系统迁移到ssd固态

    朋友送了一个固态硬盘给我,因此将原机械硬盘上的系统迁移到固态硬盘上. 原机械硬盘(dev/sdb)装有win10和ubuntu双系统.分区情况如下: sda1:ESP分区 sda2:资料 sda3:资 ...

  3. bzoj3589 动态树 树链剖分+容斥

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3589 题解 事件 \(0\) 不需要说,直接做就可以了. 事件 \(1\) 的话,考虑如果直接 ...

  4. ELK Stack

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11488404.html ELK workflow log -> filebeat -> l ...

  5. spring boot 简介(基于SSM框架的一个升级版本吧)

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

  6. FFT IP核调用与仿真之FFT数学分析

    对于FFT这个IP核,我其实对它真的是又爱又恨,因为它真的耗费了我太多时间,但是随着研究的深入,遇到的问题一点点给消化解决,终于不用带着问题睡觉了,哈哈,有时候真的挺佩服自己的,遇到不懂的,不了解的, ...

  7. 【Swagger2】SpringBoot整合swagger2

    Swagger 简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法, ...

  8. css浮动现象及清除浮动的方法

    css浮动现象及清除浮动的方法   首先先明确浮动最初的定义及使用场景:实现文本环绕图片的效果. 除了用浮动外,目前暂无其他方法实现文本环绕   再来看看浮动的具体定义: 浮动的框可以左右移动,直至它 ...

  9. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  10. springboot编程之全局异常捕获

    springboot编程之全局异常捕获 1.创建GlobalExceptionHandler.java,在类上注解@ControllerAdvice, 在方法上注解@ExceptionHandler( ...