1.小程序的权限列表少了智能控制接口
2.把图片转换成base64
将一副图片数据编码成一串字符串,使用字符串代替图片地址
可以减少http请求
加密:让用户一眼看不出图片的内容
方便引用
可逆的编码方式:
适合在http mime协议下快速传输数据
base64.encode()
base64.decode()
setCookie
getCookie
3.组件之间的数据传递
属性绑定
事件绑定
vuex
state
或者导入mapState
Mutation函数修改state里面的数据
在组件中使用this.$store.commit(‘add’)调用该方法
Mutations:可以在触发的时候传递参数
Mutations: {
addN(state,step) {
state.count+=step
}
}
在调用的时候
this.$store.commit(‘addN’,3)
触发mutations的第二种方式:导入mapMutations函数
import { mapMutations } from ‘vuex’
methods: {
…mapMutations([‘add’.‘addN’]}
}
调用的时候就是this.add()即可
传值的时候:
this.addN(3)
在Mutations中不能写异步的代码
那么怎么操作异步事件呢
Action 用于处理异步任务
但在Action 中还是要通过触发Mutation的方式间接变更数据
actions: {
addA(context) {
setTimeout(()=>{
context.commit(‘add’)
},1000)
}
}
触发这个函数:this.$store.disPatch(‘addA’)
在actions中不能直接修改state中的数据,必须通过context.commit()触发某个mutations才行
因为只有mutations中的函数才有权力去修改state中的数据
commit用来触发某个mutation
disPatch用来触发某个action
触发actions异步的时候携带参数
触发:this.$store.disPatch(‘addA’,5)
actions接收:addA(context,step)
context.commit(;add’,step)
mutations接收:
add(state,step){}
触发actions的第二种方式:
导入 mapActions
映射:…mapActions([’’])
使用:this.函数名
Getter用于对store中的数据进行加工处理形成新的数据
使用getters的第一种方式;this.$store.getters.
第二种方式:mapGetters
导入mapGetters
计算属性:…mapGetters([’’])
使用:this.
trim()除了单词之间的空格外,移除文本中的所有空格
// 根据id删除对应的任务事项
removeItem(state,id){
const i = stae.list.findIndex(x=>x.id=
id)
if (i!
-1){
state.list.splice(i,1)
}
}
}
// 统计未完成的任务条数
unDoneLen(state){
return state.list.filter(x=>x.done===false).length
}
编程
计算机程序
机器语言 汇编语言 高级语言
编程语言 格式词汇 控制计算机
翻译器
标记语言 用来读取
数据存储单位
cpu读的的内存中的代码
js
数组:一组数据的集合
利用数组字面量来创建数组
数组里面的数据用,分隔
取数组 遍历数组
小程序 :无需下载卸载 无需适配 社交 即用即走 随手可得
px:绝对单位为
rpx:相对长度一半 响应式单位
px:rpx=1;2
navigator url 链接
text元素的内容只能是纯文本 不能添加链接
display:inline 可以不换行 当作行内元素
open-type=“navigator”
nav-hover点击样式
nav-default默认样式
默认样式需要放在点击样式之前
当页面为tabbar时 不能再跳转了 那么 open-type=“switchtab”
全局配置 window:
数据绑定:映射 page页面中的data属性
把data中的值渲染到页面之上 {
{data}} 跟vue中的是一样的
运算表达式 条件表达式 三点运算符
编辑器 查看 修改 appdata可以看到数据 跟vue中的调试差不多
视图层view 逻辑层 js 数据绑定和事件机制 交互行为
条件渲染 当条件成立的时候才会使用
先把元素定义出来 再给与条件
wx:if=”” 根据条件是否成立来展示
使用条件渲染和hidden属性的区别:频繁切换,不建议使用条件
hidden只是不呈现 还是渲染,if 是当条件为真的时候才渲染
频繁切换用hidden 偶尔切换用if
v-if v-show(css之间切换)
列表渲染 类似循环语句
命名规范 语义化 驼峰式
循环 wx:for 绑定属性 针对数组生成 通过item 可以访问到每个数据
item是对数组的遍历 index的值 为下标
swiper组件 swiper-item每一张幻灯片
current=“0” 设置幻灯片的页数 换成最后一页的序号 arr.length
在最后一页的时候增加一个返回按钮 条件 渲染
position:定位
页面色生命周期函数
onLoad:页面加载的时候 初始化
this.data.current 取得值
setData赋值
onShow 每一次页面显示的时候会调用
onReady
onHide
onUnload
更新数据:逻辑层更新 this.setData()进行更新 不能直接赋值写入的方式
this.setData({
count:this.data.count+1
})
真正的更新 某一小部分数据进行更新
视图层 更新的时候 逻辑层的数据不会发生变化 是单向绑定
事件机制 : 冒泡事件和非冒泡事件
bindtap catchtap
冒泡事件:向上传递给父元素的事件 bindtap
catchtap会阻止冒泡事件
组件的自定义属性
绑定bindtap事件处理函数 : 实现页面的跳转 data-use-name=”” 自定义的数据属性
封装事件对象 data-id=”{
{item.id}}” 在函数中function(event)
event.currentTarget.dataset
wx.navigatoeTo wx.redirectTo …
?id=””传递参数
在页面初始化的时候获取query参数 :onLoad(options)
当跳转到一个页面的时候 会执行onLoad方法
options参数对象 options.id
然后通过setData方法将接收到的数据保存到data中
小程序发起网络请求
wx.request({
url : ‘’
method : ‘’
data : {
x : 1,
y: 2
}
header: {
}
success: function(res){}
fail:function(){}
complete:function(){}
})
动态设置loading
两个方法
页面事件处理函数与兹定于页面转发
onShowAppMessage:function(){
return {
title: ‘’
}
}
在有上角… 分享
组件化开发 :
多页面开发 表单处理 图片选择存储 页面数据同步 本地数据储存 自定义组件
什么是组件 : 业务逻辑和功能进行封装
高内聚 可复用
如何定义一个组件
钩子方法
视图组件 表单组件 基础内容 导航组件
配置 事件
构建和引入组件
json
前端页面优化:加载速度更快
成本更低
扩展性好
代码语义化
seo