回调函数

来吧!一文彻底搞定Vue组件!

微笑、不失礼 提交于 2019-12-11 22:57:54
作者 | Jeskson 来源 | 达达前端小酒馆 Vue组件的概述 组件是什么呢,了解组件对象的分析,Vue组件中的data属性,props传递数据的原理到底是什么。 事件通信的那些事 如何了解父子组件事件通信,和遇到非父子组件事件通信如何处理。 组件类型又是什么鬼 自定义组件双向绑定v-model,动态组件,又是如何称为动态的,为啥是动态呢,递归组件,如何理解递归。 Vue组件的了解 Vue的理解,可以找我上一篇vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础,组件是什么,组件就是自己写好的一部分封装好的功能,自己写的叫组件,别人写的叫插件,组件的运用,是vue.js强大的功能之一,组件的出现是为了提高代码的可重用性,组件是一部分完整好的,如果要使用,你可以放到你自己任何的项目上去,减少代码的重复书写。 直接在你要用的地方引入即可,是不是减少了重复性开发,可以把组件的代码按照template,style,script的拆分形式,放到对应的文件中。 template是什么?它是模板(template),模板是声明了数据和最终展现给用户的dom之间的映射关系,初始化数据data是什么?一个组件的初始数据状态,对于可以重复使用的组件来说,通常是私有的状态,方法methods是对数据进行操作的方法,接收外部参数,组件之间通过参数来进行数据的传递和共享props

JS中回调函数的简单用法

此生再无相见时 提交于 2019-12-11 18:38:29
a能拿b,b能拿到c,c能拿到d,实现a拿到d的东西。 function a() { b(function (data) { console.log(data); }); } function b(cb) { c(function (data) { cb(data); }); } function c(cb) { d(function (data) { cb(data); }); } function d(cb) { setTimeout(() => { let data = "彩虹"; cb(data); }, 3000); } 在ES7中更有趣的代码如下: async function D() { return await new Promise((resolve) => { setTimeout(() => { let data = "彩虹"; resolve(data); }, 3000); }) } // await只能使用在异步函数中,用来等待一个promise操作的promiseValue async function C() { return await D(); } async function A() { console.log(await C()); } A(); 来源: https://www.cnblogs.com/weijiangZ/p/12024336

win32窗口程序分析

蓝咒 提交于 2019-12-11 12:39:42
1.分析消息的附加参数 例如:为了查看程序处理了哪些消息 在回调函数中调用输出函数,在控制台中输出消息的值; 结果:可以看到处理了消息7f、88、31f等消息 例如分析7f消息; 在vc6中可以选中任意一个消息类型宏,按F12进入宏的定义头文件中; 在头文件中找到7f对应的消息宏; 可以看到是WM_GETICON 在msdn中搜索WM_GETICON: 可以查msdn来分析消息的参数; 例如:分析WM_CREATE消息 通过查msdn文档可以看到该消息的wParam没使用,lParam是一个指向CREATESTRUCT结构的指针; 然后分析这个结构,将lparam强转为CREATESTRUCT*型,然后就可以获取到消息带的参数; 2.win32程序入口识别 1)入口函数WinMain int CALLBACK WinMain( //CALLBACK表示__stdcall HINSTANCE hInstance, //相当于imagebase HINSTANCE hPrevInstance, //永远都是NULL不用管 LPSTR lpCmdLine, //命令行启动程序时后面接的参数用这个来读 int nCmdShow //以什么方式显示:最大化、最小化、隐藏 ){ //... } WinMain有4个参数,并且是内平栈; 内平栈的压栈顺序是从右到左

(尚013)Vue的生命周期

懵懂的女人 提交于 2019-12-11 11:31:19
三个阶段: 一.初始化显示; 二:更新显示 三.死亡 每一个阶段都对应 生命周期的回调函数(也叫勾子函数) 生命周期图示: 1. 2.test013.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><!--1.vue对象生命周期 1)初始化显示 beforeCreate() created() beforeMount(} mounted() 2)更新显示 this.xxx=value beforeUpdate() updated() 3)销毁vue实例:vm.$destory() beforeDestory() destory()2.常用的生命周期方法 created()/mounted():发送ajax请求,启动定时器等异步任务 beforeDestory():做收尾工作,如:清除定时器--><div id="test" > <button @click="destroyVM">destroy vm</button> <!--v-show显示与隐藏--> <p v-show="isShow">赵子龙:吾乃常山赵子龙也!!!</p></div><script type="text/javascript" src="../js/vue

libev 笔记(一):“事件驱动模型” 的 理解

醉酒当歌 提交于 2019-12-10 22:52:35
libev 是 一种 “事件驱动”的编程框架,所谓“事件驱动”,简单地说就是就是 有什么动作(点按钮、中断),程序就执行什么操作(中断服务函数、回调函数),当然事件不仅限于用于的操作,只要是定义好的,各种突发、预设的各种将要发生的事情,都是事件。这里,我对CPU相对熟悉一些,可以把“事件驱动”理解为 自定义软件中断。这里我们举几个案例来分析: 案例1: 状态机FSM 状态机是一种常用的编程框架,本质上讲,状态机也是一种事件驱动,“状态”就相当于“事件”,不同状态执行不同的代码功能,这里的代码功能就相当于 事件对应的 驱动 功能。 案例2:硬件中断 硬件中断是 最典型的 事件驱动,只不过这里的中断是CPU厂家预设的,当发生某一硬件中断时,执行对应的 中断服务函数,这里的 “中断”就是 “事件”,而 中断服务函数 就是 驱动。 案例3:功能 回调函数 我们在使用 一些 SDK 的时候,很多的SDK 都会提供 接口 和回调函数,这种回调 函数 也是事件驱动模型,只不过这些 事件 是SDK 定义好的,回调函数 是允许用户 自定义的 事件驱动 函数。 libev 提供了基本的 IO 事件、定时器事件、信号事件,这三种事件用的比较多,这里的IO就是针对 文件描述符,在Linux下,一切设备都是 文件,所以 IO 事件可以针对 所有的外设备,比如网口、socket,串口,文件等。定时器

axios在vue框架中的get请求和post请求

青春壹個敷衍的年華 提交于 2019-12-10 22:24:53
axios在vue框架中的get请求和post请求 1、首先用脚手架搭建一个项目 2、使用npm下载包 npm install axios (以上两个步骤不清楚可以看我前面的文章) 3、在components文件夹中新建文件 4、注意要引用axios import axios from 'axios' 5、以下是代码(get的url地址是后台提供的接口) axios get无参请求 < template > < div class = "aget" > < h1 > 这里是axios的 get 请求 < / h1 > < button @click = 'getdata' > get 方式的无参请求 < / button > < / div > < / template > < script > //引入axios import axios from 'axios' export default { methods : { getdata ( ) { // 这里是url地址是后台提供的接口 axios . get ( 'http://127.0.0.1:4444/api/v1/index/search' ) // 请求成功之后的回调函数 . then ( ( res ) => { console . log ( res ) } ) // 请求失败之后的回调函数 . catch (

利用原生JS实现数组原型方法

自古美人都是妖i 提交于 2019-12-10 15:48:14
利用原生JS实现数组原型方法 1. 判断对象数据类型 2. 利用原生JS实现map方法 3. 利用原生JS实现filter方法 4. 利用原生JS实现some方法 1. 判断对象数据类型 初始代码: const isType = function ( type ) { return function ( t ) { return `[object ${ type } ]` === Object . prototype . toString . call ( t ) } } const isArray = isType ( 'Array' ) console . log ( isArray ( [ ] ) ) 简化后: const isType = type => t => `[object ${ type } ]` === Object . prototype . toString . call ( t ) const isArray = isType ( 'Array' ) // 此时 isArray 为 // isArray = t => `[object Array]` === Object.prototype.toString.call(t) 原理:   Object 的原型上有 toString 方法,可以返回对象的数据类型;   例:传入 [1, 2, 3] 调用后得

(尚006)计算属性之set与get

半城伤御伤魂 提交于 2019-12-10 08:30:32
test004.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>计算属性和监视</title></head><body><!--1.计算属性 在在computed属性对象中定义计算属性的方法 在页面中使用{{方法名}}来显示计算的结果2.监视属性: 通过vm对象的$watch()或watch配置来监视指定的属性 当属性变化时,回调函数自动调用,在函数内部进行计算3.计算属性高级 通过getter/setter实现对数据的显示和监视 计算属性存在缓存,多次读取只执行一次getter计算 getter:属性的get方法 setter:属性的set方法--><div id="demo"> 姓: <input type="text" placeholder="First Name" v-model="firstname"><br> 名: <input type="text" placeholder="Last Name" v-model="lastname"><br> 姓名1(单向):<input type="text" placeholder="Full Name1" v-model="fullname1"><br> 姓名2(单向):<input type="text"

WPF自学入门(五)WPF依赖属性

不羁的心 提交于 2019-12-10 02:27:37
在.NET中有事件也有属性,WPF中加入了路由事件,也加入了依赖属性。最近在写项目时还不知道WPF依赖属性是干什么用的,在使用依赖项属性的时候我都以为是在用.NET中的属性,但是确实上不是的,通过阅读文章和看WPF的书籍已经了解了WPF的依赖属性的使用,我们今天就来看看为什么WPF中要加入依赖属性? 一、什么是依赖属性 WPF中的依赖属性有别于.NET中的属性,因为在WPF中有几个很重要的特征都是需要依赖项属性的支持,例如数据绑定,动画,样式设置等。WPF绝大多数属性都是依赖项属性,只不过它是用了普通的.NET属性过程进行了包装,通过这种包装,就可以像使用属性一样使用依赖项属性了,在后面会说一下怎么通过这种方式包装的。这就使用了旧技术来包装新技术的设计理念就不会干扰.NET。WPF中的依赖属性主要有以下三个优点: 1、依赖属性加入了属性变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量。 2、节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地解决了这个问题,它内部实现使用哈希表存储机制,对多个相同控件的相同属性的值都只保存一份。 3、支持多种提供对象:可以通过多种方式来设置依赖属性的值。可以配合表达式、样式和绑定来对依赖属性设置值。 刚才我们一直在说属性

Python client for Redis 官翻文档2.10.1(二)

我只是一个虾纸丫 提交于 2019-12-10 00:25:00
更多的细节 连接池: 在幕后, redis-py 使用连接池管理连接到redis-server的连接. 默认, 一旦你创建了一个Redis的实例 ,这个实例相应有自己的连接池。你可以重写此行为,在创建一个Redis实例的时候指定一个创建的连接池,告诉这个实例是使用哪个连接。(我的理解:如果存在多个redis-server,指定连接哪个) >>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0) >>> r = redis.Redis(connection_pool=pool) 连接: ConnectionPoll管理一组连接,redis-py提供两种方式连接到redis-server. 一种是(也是默认的)TCP 套接字类型 另一种是使用 UnixDomainSocket连接。通过传递unix_socket_path参数,这是一个字符串,代表 unix domain socket 文件。 另外确保在redis.conf定义 unixsocket ,默认是注释掉的。(这个俺不懂,接触的少) >>> r = redis.Redis(unix_socket_path='/tmp/redis.sock') 您可以创建自己的连接子类。如果你想控制套接字的行为在一个异步框架将会非常有用。