const

`Reactjs`常用 `Hooks`

元气小坏坏 提交于 2020-04-05 19:54:05
Reactjs 常用 Hooks 1. useClippy 用来复制数据到剪切板的 hook, clipboard 是剪切板中的数据, setClipboard 用来向剪切板中设置数据. import useClippy from "use-clippy" function Component() { const [ clipboard, setClipboard ] = useClipy() return ( <div> <div>Clipboard</div> <div>{clipboard}</div> <button onClick={() => setClipboard("nnamdi")}>Set Clipboard</button> </div> ) } 2. useBrowserContextCommunication useBrowserContextCommunication使用广播通道API来提供不同浏览器上下文(选项卡、iframe、窗口)之间通信的简单解决方案。 import useBrowserContextCommunication from "react-window-communication-hook" const [communicationState, postMessage] = useBrowserContextCommunication

Vue webAPP首页开发(三)

一曲冷凌霜 提交于 2020-04-05 18:13:56
接上篇 https://www.cnblogs.com/chenyingying0/p/12623653.html 下拉刷新 下拉刷新--变化提示文字 base/scroll/index.vue <template> <!-- wiper会实例化构造函数,生成swiper实例 --> <!-- ref="swiper"能够获取到这个swiper实例 --> <swiper :options="swiperOption" ref='swiper'> <div class="mine-scroll-pull-down" v-if="pullDown"> <!-- ref="pullDownLoading" -- 获取下拉的loading --> <me-loading :text="pullDownText" inline ref="pullDownLoading" /> </div> <swiper-slide> <slot></slot> </swiper-slide> <div class="swiper-scrollbar" v-if="scrollbar" slot="scrollbar"></div> </swiper> </template> <script> // 组件首字母大写,否则会报错 import {Swiper,SwiperSlide} from 'vue

Vue webAPP首页开发(四)

℡╲_俬逩灬. 提交于 2020-04-05 18:11:10
接上篇 https://www.cnblogs.com/chenyingying0/p/12635080.html 上拉加载更多 base/scroll/index.vue <template> <!-- wiper会实例化构造函数,生成swiper实例 --> <!-- ref="swiper"能够获取到这个swiper实例 --> <swiper :options="swiperOption" ref='swiper'> <div class="mine-scroll-pull-down" v-if="pullDown"> <!-- ref="pullDownLoading" -- 获取下拉的loading --> <me-loading :text="pullDownText" inline ref="pullDownLoading" /> </div> <swiper-slide> <slot></slot> </swiper-slide> <div class="mine-scroll-pull-up" v-if="pullUp"> <!-- ref="pullUpLoading" -- 获取上拉的loading --> <me-loading :text="pullUpText" inline ref="pullUpLoading" /> </div> <div

Vue webAPP首页开发(五)

断了今生、忘了曾经 提交于 2020-04-05 16:34:33
接上篇 https://www.cnblogs.com/chenyingying0/p/12635369.html 返回顶部组件 base/backtop/index.vue <template> <transition name="mine-backtop"> <a href="javascript:;" class="mine-backtop" v-show="visible" @click="backToTop"> <i class="iconfont icon-backtop"></i> </a> </transition> </template> <script> export default { name:"MeBacktop", props:{ visible:{ type:Boolean, default:false } }, methods:{ backToTop(){ this.$emit("backtop");//基础组件,与业务无关,具体实现去页面里 } } } </script> <style lang="scss" scoped> @import '~assets/scss/mixins'; .mine-backtop{ overflow:hidden; @include flex-center(); width:45px; height:45px;

项目实战---在线OJ

我的梦境 提交于 2020-04-04 22:33:55
在线OJ 项目功能 :类似于LeetCode及牛客网的在线答题系统,浏览器请求服务器可以获得所有试题信息,包括题目编号、题目名称、题目难度,用户可以选择某一道题进行作答,服务器返回题目描述信息以及预定义好的代码模板,用户编写完代码后浏览器将用户提交的代码返回给服务器,服务器将用户提交的代码与预定义好的题目测试用例结合编译运行,并将结果返回给浏览器告知用户通过率。 上述的功能依赖于几个模块相互配合实现,如下图 接下来就对这几个模块详细的介绍 1.试题模块 在本地创建一个目录保存所有的试题,描述某一道试题时将试题编号、试题名称、试题所在路径、试题难度通过结构体组织起来,试题所在路径中保存着这道题目的描述(desc.txt)、这道题的预定义代码(header.cpp)以及这道题的测试代码(tail.cpp) class Exam { public: std::string _id; std::string _name; std::string _path; std::string _star;//试题难度 }; 所有试题通过unordered_map保存,通过题目编号就可以在unordered_map中得到该试题的所有信息,这样也使查询效率最高。 当浏览器请求所有试题时,试题模块遍历整个unordered_map拿到所有试题信息,然后通过渲染模块返回给浏览器

c语言的typedef

浪尽此生 提交于 2020-04-04 22:33:43
一、typedef作用简介 1.作用:给已经存在的类型起一个新的名称 2.使用场合: 1> 基本数据类型 2> 指针 3> 结构体 4> 枚举 5> 指向函数的指针 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int MyInt; 4 typedef MyInt MyInt2; 5 int main() 6 { 7 // 定义结构体变量 8 int a; 9 MyInt i = 10; 10 MyInt2 c = 20; 11 12 13 printf("i is %d\n", i); 14 printf("c is %d\n", c); 15 16 return 0; 17 } 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15

学习笔记之23-typedef

半城伤御伤魂 提交于 2020-04-04 21:14:04
一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15 16 return 0; 17 } 在第3、第4、第6行分别给int、unsigned int、float起了个别名,然后在main函数中使用别名定义变量,用来跟原来的基本类型是完全一样的。输出结果: 当然,给类型起别名后,原来的int、float还是可以正常使用的: int i = 10; float f = 10.0f; * 也可以在别名的基础上再起一个别名 typedef int Integer; typedef Integer MyInteger; 二、typedef与指针 除开可以给基本数据类型起别名,typedef也可以给指针起别名 1 #include

【C语言】23-typedef

ぃ、小莉子 提交于 2020-04-04 21:11:51
本文目录 一、typedef作用简介 二、typedef与指针 三、typedef与结构体 三、typedef与指向结构体的指针 四、typedef与枚举类型 五、typedef与指向函数的指针 六、typedef与#define 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 这讲介绍C语言中很常用的一个关键字---typedef。 回到顶部 一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15 16 return 0; 17 } 在第3、第4、第6行分别给int、unsigned int

434 Promise,async,await

我只是一个虾纸丫 提交于 2020-04-04 17:57:26
Promise 是 es6 提出来的一个非常重要的一个语法 Promise 是一种 处理异步 的解决方案 通过 同步编写代码 的方式, 处理异步 的一种 解决方案 以前 : 处理异步 是怎么处理的 ? 回调 这种回调处理异步 可以的, 简单的情况下 使用 回调处理还凑活, 但是异步请求次数多, 复杂的话, 回调地狱 缺点 : 1. 代码不优雅 2. 结构不清晰 3. 处理起来不方便..... setTimeout( ()=> {},1000) $.ajax({ url : '..', data : {}, success : res => { } }) // 顺序 // 第一次发送请求 $.ajax({ url : '..', data : {}, success : res => { // 第二次发送请求 $.ajax({ url : '..', data : {}, success : res => { // 第三次发送请求 $.ajax({ url : '..', data : {}, success : res => { } }) } }) } }) 解决方式 : Promise Promise.then( res => { //第一次发送请求 }) .then(res => { //第二次发送请求 }) .then(res => { // 第三次发送请求 }) 02

define能不能取代const

最后都变了- 提交于 2020-04-04 17:49:50
首先说一下define和const的区别: 1.const定义的常量有数据类型,#define宏定义的常量没有 2.define不仅是定义常量,还可以定义带参数的宏,做到一定程度的泛型 3.const在堆栈分配了空间,而define只是把具体数值直接传递到目标变量罢了 4.const是在编译时候处理,define是应用于预处理 5. 在程序语句中使用的常量的地方, 最好是使用const定义,在这方面来说, const只有优势,没有劣势.如果要说const劣势的地方,那就是它不能做define在预处理的时候做的事情.其实,这并非它的劣势,而只是不是它所要担负的工作罢了. 6.宏可以重定义,const不能 7.#define的优势:简单。因为预处理就可以解决掉#define,不必让编译器来处理这个。从应用上讲,#define也是不可或缺的。因为它可以让写代码的人体会到方便性。 8.const引入数据类型后,可以帮助编译器识别数据的“属性”,这对编译器是非常重要的 https://bbs.csdn.net/topics/310170662 来源: https://www.cnblogs.com/shilipojianshen/p/12632562.html