-
wechat
-
什么是事件事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如 id, dataset, touches。事件的使用方式在组件中绑定一个事件处理函数。如bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数。<view id="tapTe
-
xiaozhi
-
React高级组件精讲高阶函数是以函数为参数,并且返回也是函数的的函数。类似的,高阶组件(简称HOC)接收 React 组件为参数,并且返回一个新的React组件。高阶组件本质也是一个函数,并不是一个组件。高阶组件的函数形式如下:constEnhanceComponent=higherOrderComponent(WrappedComponent)通过一个简单的例子解释高阶组件是如何复用的。现在有
-
android01
-
最近有同学问我关于Manifest何时被系统解析的问题,正好也分析到这一块了,索性这一章就讲解一下android系统何时解析Manifest吧,这里的Manifest指的是android安装文件apk中的androidManifest.xml文件是何时被解析的。大家应该都知道,Android系统启动之后,我们就可以在一个应用中打开另一个从未打开过的应用,或者是在一个应用中发送广播,如果另外一个应用
-
cheng
-
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
-
wechat
-
小程序简介小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。小程序技术发展史小程序并非凭空冒出来的一个概念。当微信中的 WebView 逐渐成为移动 Web 的一个重要入口时,微信就有相关的 JS API 了。代码清单1-1 使用 WeixinJSBridge 预览图片WeixinJSBridge.invoke('imagePreview', {
-
android
-
三)常见的一些原理性问题1、Handler机制和底层实现 机制:hanlder是android线程间通信的一种实现,以消息队列的方式实现线程间数据的共享,通过Looper不断的轮询消息队列来 获取数据 底层:MessageQueen、Looper以及Looper内部的ThreadLocal,我们在线程中Looper对消息队列的管理过程离不开数据储存ThreadLocal,ThreadLocal在多
-
androidproject
-
说真的自从对RecyclerView的LayoutManager有新的认识后,完全不用担心很多的复杂布局了。而且对ViewGroup测量过程也不用担心了,因为里面有LayoutManager帮我们实现了。下面就进入该篇文章的主题吧,废话不多说,直接上图更有说服力。 上面的示例图是我把ItemView分别用了TextView和ImageView。其实这些是没什么好说的,主要是如何定义这样的Lay
-
xiaozhi
-
关于JavaScript如何将值传递给函数,在互联网上有很多误解和争论。大致认为,参数为原始数据类时使用按值传递,参数为数组、对象和函数等数据类型使用引用传递。按值传递 和引用传递参数主要区别简单可以说:按值传递:在函数里面改变传递的值不会影响到外面引用传递:在函数里面改变传递的值会影响到外面但答案是 JavaScript 对所有数据类型都使用按值传递。它对数组和对象使用按值传递,但这是在的共享传
-
xiaozhi
-
看到“reducer”这个词,容易让人联想到Redux,但是在本文中,不必先理解Redux才能阅读这篇文章。咱们将一起讨论“reducer”实际上是什么,以及如何利用useReducer来管理组件中的复杂状态,以及这个新钩子对Redux意味着什么?Reducer 是什么鬼如果你熟悉Redux或数组上中的reduce方法,你大概就知道“reducer”是什么。 如果不熟悉,“reducer”大概是一
-
web
-
小程序开发过程中,不可避免要遇到不同页面之间数据通讯的问题,如判断是否登录等,现做出以下分类总结
一、使用全局变量实现数据传递使用场景:
购物车界面需要根据是否登录来区别显示,当没有登录时提醒去登录,登录后之间显示自己购物车里的商品列表
全局变量使用方法:
再 app.js 文件中定义全局变量 globalData, 如下:将用户信息存放在 userInfo 中
//app.js
-
linux
-
一、协程1.1协程的概念协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。(其实并没有说明白~)那么这么来理解协程比较容易: 线程是系统级别的,它们是由操作系统调度;协程是程序级别的,由程序员根据需要自己调度。我们把一个线程中的一个个函数叫做子程序,那么子程序在执行过程中可以中断去执行别的子程序;别的子程序也可以中断回来继续执行之前的子程序,这就
-
wechat
-
小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等!你可以理解为小程序的账号,小程序是获取不到你的微信号的,这个属于私密信息!只能获取用户的昵称,头像,openid,session_key等下面就讲解一下我获取openid首先,获取openid,需要具备,AppID(小程序ID),AppSecret(小程序密钥) ,还有登录成功后返回给你的js_code废话不多说,先看
-
miniprogram
-
1.wx.navigateTo(OBJECT)需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'wx.navigateTo({
url: 'test?id=1'
})这种跳转方式默认有返回按钮,返回到上一个页面2.wx.redi
-
android
-
android如何设置EditText控件中的文本最大长度我有一个编辑文本和一个文本视图,我想在我的编辑文本中设置一个最大长度,并在我的文本视图中显示,每当用户输入一个字符时,它将减去字符数。 例如,我将编辑文本的最大长度设置为150,如果用户输入150个字符,则他/她将无法再输入。方法一, 在您的XML文件中(推荐),使用属性android:maxLength="150"例如:<EditT
-
xiaozhi
-
随着我们的应用程序的不断增长并开始进行复杂的计算时,对速度的需求越来越高(????️),所以流程的优化变得必不可少。 当我们忽略这个问题时,我们最终的程序需要花费大量时间并在执行期间消耗大量的系统资源。缓存是一种优化技术,通过存储开销大的函数执行的结果,并在相同的输入再次出现时返回已缓存的结果,从而加快应用程序的速度。如果这对你没有多大意义,那没关系。 本文深入解释了为什么需要进行缓存,缓存是什么,如何
-
cheng
-
1、SpringBoot返回JSON简介随着web开发前后端分离技术的盛行,json是目前主流的前后端数据交互方式,使用json数据进行交互需要对json数据进行转换解析,需要用到一些json处理器,常用的json处理器有:jackson-databind,SpringBoot默认的json处理器Gson,是Google的一个开源框架fastjson,目前解析速度最快的开源解析框架,由阿里开发下面
-
hangge
-
kubernetes(简称K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用。 在之前的文章中,我介绍如何通过Docker为我们提供的实验网站Play with Kubernetes(PWK)来搭建Kubernetes集群(点击查看)。 但如果每次学习时都需要重新搭建一个K8s集群还是很麻烦。好在Kubernetes官网已经为我们准备好了现成的最小可用系统。我们通过Web浏览器就可
-
android00
-
1、首先说一下canvas类:Class OverviewThe Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bit
-
xiaozhi
-
为了保证的可读性,本文采用意译而非直译。想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!CSS Grid GeneratorCSS Grid Generator是一个由Sarah Drasner创建的免费工具。它是一个可视化设计工具,允许咱们创建一个基本的 grid 布局,然后就可以使用生成对应的代码,帮助咱们快速布局。第一次进入是界面是这样子的:CSS Grid 布局示例当我
-
qdxw
-
js输入金额自动格式化<script>
functioncc(s){
if(/[^0-9\.]/.test(s))return"invalidvalue";
s=s.replace(/^(\d*)$/,"$1.");
s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1")