JavaScript & React & Ant Design & Flutter & Dart 基础学习笔记 Tree Form 组件通信 封装等

简介: JavaScript & React & Ant Design & Flutter & Dart 基础学习笔记 Tree Form 组件通信 封装等

@TOC
本文章没有细节目录,有需要可 Ctrl+F 搜索关键字

React&Ant Design

Class 类组件 和 函数组件 封装
```javascript XML
//类组件
class MyClass extends React.Component {
....代码
}
MyClass = Form.create({})(MyClass);
export default MyClass

//函数组件
const myFunction =(form)=>{
...代码
}
const MyFunction = Form.create()(myFunction);
export default MyFunction



## 简单使用

 `JavaScript数组 `.
```javascript
// 第一个项目为0  第二个为1 以此类推
let foo = ["我是0","我是1","我是2"];
console.log(foo[1])//我是1

JS对象拼接

var obj={
   fName:'张三',oName:'83岁',aNmae:'没对象'};
console.log(obj.fName+',今年'+obj.oName+'一直'+obj.aNmae);
//张三,今年83岁一直没对象

typeof 确定js变量类型

//typeof 可返回的原始类型 👇
typeof '' //string
typeof 1 //number
typeof truefalse // boolean 布尔值
typeof [1,2,3] // object 数组即对象
//空值 未定义的 均undefined

Null

//Null是nothing 不存在的
//但是在js里面null仍被当成对象可以用typeof来验证
typeof null //“object”
//可以通过设置为 undefined 来清空对象
var a = 1; //a=1
var a = undefined  //a不会为1 而未定义

undefined && Null的区别

typeof undefined // undefined
typeof null //这并不是无,而是一个没有值的对象
undefined === null //false 绝对等于下面他们的类型不一样
undefined == null //true 相对等于,他们俩都没有值

JavaScript函数,对象,事件

js函数创建及使用--简单

function myName(参数1,参数2){
   
    //要执行的代码 比如提示框
    alert('我是弹窗')
}
//调用
onClick="myName"

局部变量

//ES6语法 let 和const 均有此功能
function myName(){
   
    var car="Audi"
    //这里才能用car
}
console.log(car) // "car" is not defined
对象 属性
日产GTR 涡轮增压V6发动机
双门四座跑车
锻造合金轮毂

所有对象都有属性,但是每个对象的属性又不固定。
所有对象都有相同的方法,但是方法会在不同时间执行。

对象也是变量,但对象包含很多值

var car={
   名称:“值”,name:"object",number:"123"}
//car 它是被命名为car 用来存放值的容器
属性 属性值
名称
name object
number 123

对象也可以有方法
方法是在对象上执行的动作
方法以 函数的形式 存在属性中 (匿名函数)

//parameter参数
var name ={
   
parameter1:"早",
parameter2:"上",
parameter:"好",
modus:function(){
   
    return "你"+ this.a+this.b+this.c;
  }
}
//调用方法里面的函数
console.log(name.modus())

this关键词----重点

在函数定义中 this引用该函数的“所有者,拥有者”

上面的例子中【简单来说this代替了name】,指的是拥有modus函数的 name对象!
另一种说法,this.parameter1的意思就是this对象的parameter1的属性。

简单梳理对象

var person = {
   
    a:'1'
    b:'2'
    //空格 折行 都是OK滴
};
//访问对象属性上面有写过
//就拿现在这个例子来
person.a // 1
//调用/访问对象函数,上面有。
//如果调用/访问对象函数没有加() 那么他将返回函数的定义,比如👇👇
c:function(){
   
    this.a+","+this.b
}
//没加()他将返回function(){this.a+","+this.b}

最后!
请不要把字符串、数值和布尔值声明为对象!
如果通过关键词 "new" 来声明 JavaScript 变量,则该变量会被创建为对象:

var x = new String(); //把x声明为String对象
var y = new Number();//把y声明为Number对象
var z = new Boolean();//把z声明为boolean对象

常见的HTML事件(个人认为)
|事件|描述 |
|--|--|
| onChange |HTML元素以被改变 |
| onClick|用户单击了HTML元素 |
| onMouseover|用户把鼠标移动到HTML元素上 |
| onMouseout |用户把鼠标移开HTML |
| onkeydown|用户按下键盘 |
| onSelect| 文本被选中 |
| onSubmit| 确认按钮被点击 |

字符串长度 if判断可用

let length='ABCD123'
console.log(length.length)// 7

字符串也可以是对象(Object)

let x = "Boys"
let y = new Name"Boys"
//typeof x string
//typeof y object
但是 x ==  y 因为他们的字符串是相等的
x === y 这样就不等于,因为他们俩的类型不相等

正则表达式

var str = "Visit W3School!"; 
var n = str.replace("W3School","123"); // Visit 123!
//search() 方法使用表达式来搜索匹配,然后返回匹配的位置。
//replace(,"修改的内容") 方法返回模式被替换处修改后的字符串。

var obj = /e/.exec("The best things in life are free!");
// true 查找e有没有

更多正则表达式参数

访问修改数组

let car=['a','b','c','d']
car[2]='我'
console.log(car);//[ 'a', 'b', '我', 'd' ]

for循环 遍历数组 -----重点

let car = ['Password','Apple','KuGo' ,'Work','Greed'];
for(i = 0; i < car.length; i++){
   
    car[1];
    //如果在里面打印,会导致有几个数组就输出几次
}
console.log(car);//[ 'Password', 'Apple', 'KuGo', 'Work', 'Greed' ]
//还有一种方法,不需要全局变量i 

for(let i = 0; i < car.length; i++){
   
    const element = car[i]
    //只能在里面打印
    console.log(element);
    //Password
    //Apple
    //KuGo
    //Work
    //Greed
}

添加数组 关联数组

let fruits = ['Banana','Red','denunciation','course'];
//push()方法
fruits.push('添加')// ['Banana','Red','denunciation','course','添加']
//length 也可以,麻烦
fruits.[fruits.length]='添加'
-----------------关联数组-------------------
var person = [];
person[0] = "Bill";
person[1] = "Gates";
person[2] = 62;
var x = person.length; // person.length 返回 3
var y = person[0]  // person[0] 返回 "Bill"
//上面的 3 代表有 三个数组

警告!

let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[2] = "Lemon"; 
//2代表Apple,这时如果添加Lemon 他会把Apple替换掉!!

🍟 Flutter

Flutter介绍

没空写

随手记

主要是一些布局小技巧以及API 2022-4-18

内边距组件:
设置组件的内边距

```dart | pure
Padding(
padding:EdgeInsets.all(n),
child:组件
)

水平组件:
子组件全都水平排列

```dart | pure
    Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly, 水平方向的布局方式,spaceEvenly元素与元素之间,首尾元素与父容器的距离均匀分配
        crossAxisAlignment: CrossAxisAlignment.center,  垂直方向布局方式
        children: <Widget>[...]    //Lisi<Widget>类型的容器
    )

垂直组件:
子组件全都垂直排列
内部不能放置ListView组件

```dart | pure
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, 垂直方向的布局方式,spaceEvenly元素与元素之间,首尾元素与父容器的距离均匀分配
crossAxisAlignment: CrossAxisAlignment.center, 水平方向布局方式
children: [...] //Lisi类型的容器
)

自适应组件:
类似flex布局中设置flex的值使得元素按占比布局

```dart | pure
    Expanded(
        flex:n,   子组件占父元素的比例
        child:组件
    )

自适应占据控件组件Spacer()
可以用于Column等组件中,用于按照自适应组件的方式占据空间
Spacer(); 内部就是返回一个Expanded的SizedBox的空间布局
Spacer(flex:n);


圆形

```dart | pure

Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: Colors.white,
width: 2,
),
),
)




-----------------------


时间格式化

```dart | pure
import 'package:intl/intl.dart';
DateFormat inputFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
DateTime dateTime = inputFormat.parse("18-08-2019 20:59:59");
DateFormat outputFormat = DateFormat("HH:mm:ss");
String dateInString = outputFormat.format(dateTime); //  20:59:59
相关文章
|
3天前
|
前端开发 C++ 容器
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
|
3天前
|
设计模式 缓存 Dart
Flutter学习笔记&学习资料推荐,15分钟的字节跳动视频面试
Flutter学习笔记&学习资料推荐,15分钟的字节跳动视频面试
|
5天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
|
5天前
|
Dart 前端开发 开发者
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
【4月更文挑战第30天】Dart是Google为Flutter框架打造的高效编程语言,具有易学性、接口、混入、抽象类等特性。本文概述了Dart的基础语法,包括静态类型(如int、String)、控制流程(条件、循环)、函数、面向对象(类与对象)和异常处理。此外,还介绍了库导入与模块使用,帮助开发者快速入门Flutter开发。通过学习Dart,开发者能创建高性能的应用。
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
|
5天前
|
Dart 测试技术 UED
Dart 和 Flutter 错误处理指南 | 最佳实践全解析
深入探索 Dart 和 Flutter 中的错误处理技术,从编译时错误到运行时异常,带你学习如何优雅地处理应用程序中的各种意外情况。了解最佳实践,让你的应用程序稳如磐石,用户体验持续优化!
Dart 和 Flutter 错误处理指南 | 最佳实践全解析
|
5天前
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
|
5天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
5天前
|
开发框架 Dart Java
Flutter的核心:Dart语言基础——语法与特性深度解析
【4月更文挑战第26天】Flutter框架背后的Dart语言,以其简洁的语法和独特特性深受开发者喜爱。本文深入解析Dart的语法与特性,如类型推导、动态静态类型系统、统一的类接口、访问权限控制以及并发编程支持。了解并掌握Dart,能助开发者更高效地利用Flutter构建高性能移动应用。
|
5天前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
19 0
webgl学习笔记3_javascript的HTML DOM
|
5天前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
19 0