当前位置:   article > 正文

2024年微信小程序学习笔记(二)-- 开发之框架_微信小程序开发框架,2024年最新网络安全黑科技保活实现原理揭秘

2024年微信小程序学习笔记(二)-- 开发之框架_微信小程序开发框架,2024年最新网络安全黑科技保活实现原理揭秘

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

/**

  • 生命周期函数–监听页面加载
  • 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
    /
    onLoad: function (options) {
    // options为打开当前页面路径中的参数
    },

    /
    *
  • 生命周期函数–监听页面初次渲染完成
  • 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互
    /
    onReady: function () {

    },

    /
    *
  • 生命周期函数–监听页面显示
  • 页面显示/切入前台时触发
    /
    onShow: function () {

    },

    /
    *
  • 生命周期函数–监听页面隐藏
  • 页面隐藏/切入后台时触发
    /
    onHide: function () {

    },

    /
    *
  • 生命周期函数–监听页面卸载
  • 页面卸载时触发。
    /
    onUnload: function () {

    },

    /
    *
  • 页面相关事件处理函数–监听用户下拉动作
  • 需要在app.json的window选项中或页面配置中开启enablePullDownRefresh。
  • 可以通过wx.startPullDownRefresh触发下拉刷新,调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。
  • 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新
    /
    onPullDownRefresh: function () {

    },

    /
    *
  • 页面上拉触底事件的处理函数
  • 可以在app.json的window选项中或页面配置中设置触发距离onReachBottomDistance。
  • 在触发距离内滑动期间,本事件只会被触发一次
    /
    onReachBottom: function () {

    },

    /
    *
  • 用户点击右上角分享
    /
    onShareAppMessage: function (res) {
    if (res.from === ‘button’) {
    // 来自页面内转发按钮
    console.log(res.target)
    }
    // 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4。
    return {
    title: ‘自定义转发标题’,
    path: ‘/page/user?id=123’,
    imageUrl: ‘’
    }
    },

    /
    *
  • 监听用户滑动页面事件
    /
    onPageScroll: function () {

    }
    /
    *
  • 自定义函数
    */
    })

### **4、getCurrentPages()**


获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。



> 
>  不要尝试修改页面栈,会导致路由以及页面状态错误。 
>    
>  不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。 
> 


### **5、自定义组件**


创建自定义组件,接受一个 Object 类型的参数


比如在首页里需要一个产品列表的组件,可以自定义该组件


![](https://img-blog.csdnimg.cn/img_convert/f74a707282a1bdd380f5c954425cc1ab.png)


小技巧 点击 “+”选择目录,输入components


右键点击components目录,选择目录, 输入prolist


右键点击prolist目录,选择 新建Component ,输入prolist 即可


如何使用该组件呢?


在首页的pages/home/home.json文件中注册组件


![](https://img-blog.csdnimg.cn/img_convert/d99814fafdd23719a3c6f61495d1cbcd.png)


在首页的pages/home/home.wxml中使用该组件,就像正常的标签一样使用


![](https://img-blog.csdnimg.cn/img_convert/80fea840db4f6149b5d01d3e02a0b075.png)


组件之间的传值在后续课程中会讲解


### **6、模块化**


建议使用es6的模块化方法,api中提供的是基于commonjs规范的exports以及require语法


#### **6.1 定义工具模块 utils/index.js**


数据请求模块 以及 可消失的提示框 模块 - 暴露



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

const baseUrl = ‘http://daxun.kuboy.top’
/**

  • 数据请求模块
  • 接口地址 http://daxun.kuboy.top/apidoc
  • 先显示加载框,然后请求结束加载框消失

/
export function request (url, data) {
// 显示加载中
// 参考https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showLoading.html
wx.showLoading({
title: ‘加载中’,
})
// 使用promise 解决异步操作问题,此处还可以使用 async + await
return new Promise((resolve, reject) => {
// 微信小程序的数据请求方法
// 必须配置小程序的安全域名,
// 在开发阶段可以在“详情” - “本地设置” - 勾选中 不校验请求域名、web-view(业务域名)、TLS版本及HTTPS证书
wx.request({
url: baseUrl + url,
data: data || {},
success: (res) => {
// 隐藏加载中
wx.hideLoading();
// 后续处理
resolve(res.data)
}
})
})
}

/
*

  • 可消失的提示框 - 默认只显示文字
  • str 提示内容
  • icon 是否需要图标,none 、 success(默认值) 、 loading
    */
    export function Toast (str, icon) {
    // 微信提供的API接口
    // 参照 https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showToast.html
    wx.showToast({
    title: str,
    icon: icon || ‘none’
    })
    }

#### **6.2 首页中测试**


在首页 pages/home/home.js中测试,先引入模块


![](https://img-blog.csdnimg.cn/img_convert/d12eb41bb03a56ace70fb9c6c4cd3ba4.png)


### **四、WXML语法参考(精通)**


创建一个新的页面pages/test/test


![](https://img-blog.csdnimg.cn/img_convert/5856643426c87d8ece1551c61cc9fcda.png)


![](https://img-blog.csdnimg.cn/img_convert/e5da4939395d293739c9a2788d7e541c.png)


选择工具栏的 小程序编译,添加编译模式,可以更快捷的只渲染本页面,便于开发者的调试


![](https://img-blog.csdnimg.cn/img_convert/eaa3a0209c6b9c80287751f321ff8dd3.png)


![](https://img-blog.csdnimg.cn/img_convert/d5f42af2fd8b540a1db2970a287a24c2.png)


#### **1.数据绑定**


WXML 中的动态数据均来自对应 Page 的 data。


1.简单绑定(类似于vue中的Mustache 语法)


数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于:


内容



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

{{ message }}
Page({
data: {
message: ‘Hello MINA!’
}
})


![](https://img-blog.csdnimg.cn/img_convert/0719760e41c50d7d444e6eadacc76897.png)


1. 组件属性(需要在双引号之内)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


Page({
data: {
id: 0
}
})


![](https://img-blog.csdnimg.cn/img_convert/64de468aff8eb01bae905c4327a04d9d.png)


3.控制属性(需要在双引号之内)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

条件为真我就显示
Page({
data: {
flag: true
}
})


![](https://img-blog.csdnimg.cn/img_convert/03dd8b68d2c768453e884d3c99d6243b.png)


4.boolean以及number数据类型


如果数据类型是booblean 或者number类型的数据,需要使用`{{}}`包裹



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11



![](https://img-blog.csdnimg.cn/img_convert/4372a51088e8cc44d912bc239d70c94e.png)


5.表达式运算 可以在 `{{}}` 内进行简单的运算,支持三元运算、算数运算、逻辑判断、字符串运算等



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

属性

{{a + b}} + {{c}} + d

{{“hello” + name}}


#### **2.列表渲染**


wx:for(vue中使用v-for)


在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。


默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item


列表渲染必须添加 wx:key指令, 来指定列表中项目的唯一的标识符。


key值可以设置为索引值



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

Page({
data: {
teachers: [
{
name: ‘刘沛君’,
city: ‘大连’
},
{
name: ‘韦华文’,
city: ‘长沙’
},
{
name: ‘卢有烨’,
city: ‘重庆’
},
{
name: ‘刘春华’,
city: ‘北科’
},
{
name: ‘黄俊健’,
city: ‘北科’
},
{
name: ‘谢晋荣’,
city: ‘广州’
},
{
name: ‘李威’,
city: ‘深圳’
},
{
name: ‘李鹏’,
city: ‘郑州’
},
{
name: ‘赵小康’,
city: ‘南京’
},
{
name: ‘张路’,
city: ‘成都’
},
{
name: ‘李响’,
city: ‘合肥’
},
]
}
})

{{index}} - {{item.city}} - {{item.name}}

![](https://img-blog.csdnimg.cn/img_convert/d27720fcdb1cb57452e98c85c27c4928.png)


默认 选项为item,默认索引值为index,如果需要更改,可以使用如下方式



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
{{idx}} - {{itm.city}} - {{itm.name}} ```

3.条件渲染

wx:if 在框架中,使用 wx:if=“” 来判断是否需要渲染该代码块

<view wx:if="{{flag}}"> True </view>
  • 1

也可以用 wx:elif 和 wx:else 来添加一个 else 块

<view wx:if="{{len > 5}}"> 1 </view>
<view wx:elif="{{len > 2}}"> 2 </view>
<view wx:else> 3 </view>
  • 1
  • 2
  • 3

因为 wx:if 是一个控制属性,需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 标签将多个组件包装起来,并在上边使用 wx:if 控制属性

<block wx:if="{{true}}">
  <view> view1 </view>
  <view> view2 </view>
</block>
  • 1
  • 2
  • 3
  • 4

注意: 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。

wx:if vs hidden — (对比vue中的 v-if 与 v-show)

因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。

同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。

相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。

一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好

五、WXS语法(了解)

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。

熟悉js语法的可以很快速的接收并且掌握它。

六、WXSS语法

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。

WXSS 用来决定 WXML 的组件应该怎么显示。

为了适应广大的前端开发者,WXSS具有CSS大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。

与 CSS 相比,WXSS 扩展的特性有:

尺寸单位

样式导入

1.尺寸单位

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

建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。

注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况

2.样式导入

使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束

3.全局样式与局部样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面。在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/780025
推荐阅读
相关标签
  

闽ICP备14008679号