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

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

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

React&Ant Design

Class 类组件 和 函数组件 封装

//类组件 
class MyClass extends React.Component {
    ....代码
}
MyClass = Form.create({})(MyClass);
export default MyClass


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

简单使用

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 true 或 false // 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

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

    Padding(
        padding:EdgeInsets.all(n),
        child:组件
    )

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

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

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

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

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

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

自适应占据控件组件Spacer()

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


圆形


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

时间格式化

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
相关文章
|
4月前
|
前端开发 JavaScript 网络架构
react对antd中Select组件二次封装
本文介绍了如何在React中对Ant Design(antd)的Select组件进行二次封装,包括创建MSelect组件、定义默认属性、渲染Select组件,并展示了如何使用Less进行样式定义和如何在项目中使用封装后的Select组件。
162 2
react对antd中Select组件二次封装
|
2月前
|
存储 缓存 JavaScript
Flutter 学习之封装 WebView
【10月更文挑战第24天】通过以上的探讨,我们可以看出,在 Flutter 中封装 WebView 是非常有必要的,它可以提高代码的复用性、增强可维护性、提供统一接口。在实际应用中,我们需要根据具体的需求和场景,选择合适的封装方法和技术,以实现更好的效果。
|
1月前
|
XML JSON 前端开发
一文带你了解 Flutter dio封装
一文带你了解 Flutter dio封装
221 1
|
2月前
|
开发框架 Dart 前端开发
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。本文从 Flutter 简介、特点、开发环境搭建、应用架构、组件详解、路由管理、状态管理、与原生代码交互、性能优化、应用发布与部署及未来趋势等方面,全面解析 Flutter 技术,助你掌握这一前沿开发工具。
95 8
|
4月前
|
Dart
如何在 Flutter 项目中使用 Dart 语言?
如何在 Flutter 项目中使用 Dart 语言?
148 58
|
3月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
127 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
2月前
|
Dart
flutter dart mixin 姿势
flutter dart mixin 姿势
|
2月前
|
存储 缓存 Dart
Flutter&鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
本文详细介绍了如何在 Flutter 中使用 Dio 封装网络请求,实现用户登录身份验证及免登录缓存功能。首先在 `pubspec.yaml` 中添加 Dio 和 `shared_preferences` 依赖,然后创建 `NetworkService` 类封装 Dio 的功能,包括请求拦截、响应拦截、Token 存储和登录请求。最后,通过一个登录界面示例展示了如何在实际应用中使用 `NetworkService` 进行身份验证。希望本文能帮助你在 Flutter 中更好地处理网络请求和用户认证。
207 1
|
2月前
|
Dart UED 开发者
Flutter&鸿蒙next中的按钮封装:自定义样式与交互
在Flutter应用开发中,按钮是用户界面的重要组成部分。Flutter提供了多种内置按钮组件,但有时这些样式无法满足特定设计需求。因此,封装一个自定义按钮组件变得尤为重要。自定义按钮组件可以确保应用中所有按钮的一致性、可维护性和可扩展性,同时提供更高的灵活性,支持自定义颜色、形状和点击事件。本文介绍了如何创建一个名为CustomButton的自定义按钮组件,并详细说明了其样式、形状、颜色和点击事件的处理方法。
101 1
|
2月前
|
开发工具 UED
Flutter&鸿蒙next中封装一个输入框组件
本文介绍了如何创建一个简单的Flutter播客应用。首先,通过`flutter create`命令创建项目;接着,在`lib`目录下封装一个自定义输入框组件`CustomInput`;然后,在主应用文件`main.dart`中使用该输入框组件,实现简单的UI布局和功能;最后,通过`flutter run`启动应用。本文还提供了后续扩展建议,如状态管理、网络请求和UI优化。
115 1

热门文章

最新文章