按钮

React Hooks和TypeScript完全指南

旧时模样 提交于 2020-02-08 09:21:14
引言 React v16.8 引入了 Hooks,它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。这些功能可以在应用程序中的各个组件之间使用,从而易于共享逻辑。Hook 令人兴奋并迅速被采用,React 团队甚至想象它们最终将替换类组件。 以前在 React 中,共享逻辑的方法是通过高阶组件和 props 渲染。Hooks 提供了一种更简单方便的方法来重用代码并使组件可塑形更强。 本文将展示 TypeScript 与 React 集成后的一些变化,以及如何将类型添加到 Hooks 以及你的自定义 Hooks 上。 引入 Typescript 后的变化 有状态组件(ClassComponent) API 对应为: React.Component<P, S> class MyComponent extends React.Component<Props, State> { ... 以下是官网的一个例子,创建 Props 和 State 接口,Props 接口接受 name 和 enthusiasmLevel 参数,State 接口接受 currentEnthusiasm 参数: import * as React from "react"; export interface Props { name: string;

android:单位和尺寸

北战南征 提交于 2020-02-08 09:01:56
为了要让程序拥有更好的屏幕适配能力,在指定控件和布局大小的时候 最好使用 match_parent 和 wrap_content,尽量避免将控件的宽和高设定一个固定值。不过在 有些情况下,仅仅使用 match_parent 和 wrap_content 确实无法满足我们的需求,这时就必须 要给控件的宽或高指定一个固定值。在布局文件中指定宽高的固定大小有以下常用单位可供 选择:px、pt、dp 和 sp。新建好一个 UISizeTest 项目,然后我们开始对这几个单位进行探讨。 3.6.1 px 和 pt 的窘境 px 是像素的意思,即屏幕中可以显示的最小元素单元,我们应用里任何可见的东西都 是由一个个像素点组成的。单独一个像素点非常的微小,肉眼是无法看见的,可是当许许多 多的像素点聚集到一起时,就可以拼接成五彩缤纷的图案。 pt 是磅数的意思,1 磅等于 1/72 英寸,一般 pt 都会作为字体的单位来使用。 过去在 PC 上使用 px 和 pt 的时候可以说是非常得心应手,能把程序打扮得漂漂亮亮。 可是现在到了手机上,这两个单位就显得有些力不从心了,因为手机的分辨率各不相同,一 个 200px 宽的按钮在低分辨率的手机上可能将近占据满屏,而到了高分辨率的手机上可能只 占据屏幕的一半。我们通过例子来直观地看一下,修改 activity_main.xml 中的代码,如下 所示:

vue.js (v-bind、on)绑定class style

假如想象 提交于 2020-02-08 05:40:57
vue指令 1.v-bind绑定属性 简写“:” 2.绑定多个class用数组 class [] {} style {} [] v-on:xxx (v-on <==> @) Document <button @click="handleClick">点击</button> <h4 :class="h4ClassArr[h4Index]">{{ name }}</h4> 来源: CSDN 作者: 城南没有城北 链接: https://blog.csdn.net/weixin_42380289/article/details/104216043

事件修饰符 .stop .capture .prevent .self .

别说谁变了你拦得住时间么 提交于 2020-02-08 01:25:51
MVVM基本结构 <div id="app"> <div class="inner" @click="div1Handler"> <input type="button" value="点击" @click="btnHandler"> </div> </div> <script> var vm = new Vue ({ el: '#app', data: {}, methods: { div1Handler () { console.log('这是触发了 inner div事件') }, btnHandler () { console.log('这是触发了 btn 事件') } } }) </script> 点击button .stop 阻止冒泡 <div id="app"> <div class="inner" @click="div1Handler"> <input type="button" value="点击" @click.stop="btnHandler"> </div> </div> 点击button 2. .capture 实现捕获触发事件 <div id="app"> <div class="inner" @click.capture="div1Handler"> <input type="button" value="点击" @click.stop=

jQuery操作页面元素之元素内容操作

雨燕双飞 提交于 2020-02-08 00:48:28
1:html()和text()的区别及使用 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="utf-8"> 6 <!--#id 用于绑定元素id来控制元素的style--> 7 <style type="text/css"> 8 #btn { 9 background-color: aliceblue; 10 width: 100px; 11 height: 50px; 12 } 13 14 button { 15 background-color: brown; 16 width: 100px; 17 height: 100px; 18 } 19 20 h1 { 21 font-style: initial; 22 } 23 </style> 24 <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"> 25 </script> 26 </head> 27 <script> 28 $(function() { 29 //$('button')绑定了所有的button 30 $('#btn').click(function() { 31 //a获取返回的内容,$为jQuery()函数.

Windows 8.1 应用再出发 - 几种新增控件(2)

佐手、 提交于 2020-02-07 23:54:38
原文: Windows 8.1 应用再出发 - 几种新增控件(2) 本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout、MenuFlyout、SettingsFlyout、Hub 和 Hyperlink。 1. Flyout Flyout被称为浮出控件,能起到提示或者简单交互作用。我们可以利用它来要求用户确认操作、收集用户输入信息或显示提示信息等。只有当用户点击时才显示Flyout,当点击外部任意点时,Flyout消失。 Flyout通常会附加到Button上,所以Button拥有Flyout属性来简化附加和使用的过程。 <Button Content="Delete it"> <Button.Flyout> <Flyout> <StackPanel> <TextBlock>This item will be deleted. Do you want to continue ?</TextBlock> <Button Click="DeleteConfirmation_Click">Yes, delete it.</Button> </StackPanel> </Flyout> </Button.Flyout> </Button> 如上图所示,我们为Button附加了Flyout控件,当Button点击时,Flyout出现。当点击外部任意点时

JS事件绑定的三种方式比较

℡╲_俬逩灬. 提交于 2020-02-07 22:11:43
js事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> body{ width:100%; height:100%; } input{ display: block; margin-bottom:10px; } .active{ color:orange; } </style> <script src="DomReady.js"></script> <script> myReady(function(){ var btn = document.querySelector("#btn"); //时间句柄 var clickme = function(){ alert("hello~"); } btn.addEventListener("click", clickme); }); </script> </head> <body> <button id="btn">点击我</button> </body> </html> 事件监听的三种方法: 1、直接在html上添加事件(不建议) 强耦合,不利用代码复用 2、DOM 0级 一个元素只能绑定一个事件的限制 如果绑定了多个事件,后面的会覆盖掉前面的 2、DOM 2级 一个事件可以绑定多个监听函数

android开发基础

≯℡__Kan透↙ 提交于 2020-02-07 18:28:43
今天学习了关于app的本地化(将app界面语言在虚拟机上可以切换语言)。 我来阐述一下具体得步骤: 第一步: 我先做了一个简单得例子: 界面截图(最上方为一个显示框,显示“Hello”,点击按钮之后可以在Hello下方显示“I love you!”): 这是英文版,需要让它可以在虚拟机上设置变为中文版。 这个简单的界面上有三个控件,id分别为Textview2,Textview3,button,我们只需要操作两个,分别为Textview3与button。 设置号界面之后再Mainactivity中设置好他们的关系: package com.example.located; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Button button; TextView textView; @Override protected void onCreate(Bundle savedInstanceState

WPF 在绑定表达式添加计算

我只是一个虾纸丫 提交于 2020-02-07 10:09:59
很多时候一些简单的使用绑定需要对绑定的源做处理就需要通过转换器,这样的代码写起来不好看 本文告诉大家通过一个简单的库可以实现在界面绑定的时候通过表达式不需要转换 首先通过 Nuget 安装 CalcBinding 库,注意 Nuget 的地址是 https://api.nuget.org/v3/index.json 如果没有找到这个库就请复制链接点击更新,再输入 CalcBinding 寻找 在使用这个库之前需要引用命名空间,打开 MainWindow.xaml 文件,添加命名空间 xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding" 然后创建一个数据用来绑定 public class ViewModel : INotifyPropertyChanged { public double A { get => _a; set { if (value.Equals(_a)) return; _a = value; OnPropertyChanged(); } } public double B { get => _b; set { if (value.Equals(_b)) return; _b = value; OnPropertyChanged(); } } public double C { get => _c; set

76.MediaPlayer[音频播放]

拟墨画扇 提交于 2020-02-07 08:52:46
1. 要播放音频,必须在 res 文件夹下建立一个 raw 的文件夹用于存放音频文件。系统会自动根据文件名产生一个 Id ,调用的时候直接 R.raw. 文件名即可【文件名不可以为中文】。 2. 创建一个 MediaPlayer 对象,根据 API 可以知道使用 MediaPlayer 的静态方法 create(context,resource.id); 该方法有两个参数 context 是指当前的上下文, resource.id 是资源文件的 id ,即音频文件的 id. 3. 设置一个用于启动播放的按钮,并设置按钮触发事件。这里因为是将播放和暂停集合到同一个按钮上(即点击播放的时候,按钮改变成暂停;点击暂停,按钮变成播放),所以需要注意的是需要判断当前的播放状态,设置一个播放状态的布尔变量,具体实现如下图所示: 播放音频文件的时候可以设置一个音频进度条,如果需要进度条跟随音乐播放而显示播放进度的时候,因为是同步的,所以需要开启一个线程。通过计算来定时设置进度条的位置。 公式:进度条当前位置 = 当前音频播放的时间位置 / 音频总时长 * 进度条的总长度 这里需要特别注意的是: 注意点 1 : 时间是以毫秒计算的,这样数字就比较大,所以这里需要使用 long 类型来表示。 注意点 2 : 当前音频播放时间的位置小于音频总时长,如果是 long 型相除的话,结果就变成 0 了