赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
如果执行 “agen” 不带任何命令,将优先使用本地的命令进行执行
-o, --out const 类放置的位置
(默认放置在 “lib” 下面)
-r, --rule consts 的名字的命名规范
“lwu”(小写带下划线) : “assets_images_xxx_jpg”
“uwu”(大写带下划线) : “ASSETS_IMAGES_XXX_JPG”
“lcc”(小驼峰) : “assetsImagesXxxJpg”
(默认 “lwu”)
-c, --class const 类的名字
(默认 “Assets”)
–const-ignore 使用正则表达式忽略一些const(不是全部const都希望生成)
ExtendedImage,集众多功能为一体的图片组件,包括以下主要功能:
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
ExtendedList,针对官方 Listview
和 GirdView
做的扩展组件,包括以下主要功能:
Viewport
中元素变化![]() | ![]() |
ExtendedNestedScrollView,主要解决官方 NestedScrollView
存在的2个问题。
NestedScrollView
的 Header 中不能处理多个 pinned
为 true
的元素的问题。github.com/flutter/flu…NestedScrollView
的 Body 中列表滚动会互相影响的问题。github.com/flutter/flu…ExtendedSliver,对 Sliver
组件的扩展,主要包括以下功能:
SliverPinnedPersistentHeader
,跟官方的SliverPersistentHeader(pinned: true)
一样的效果, 不同的是你不需要去设置 minExtent
和 maxExtent
。因为大部分场景下面,我们是无法提前知道 minExtent
和 maxExtent
。SliverPinnedToBoxAdapter
,可以通过它轻松创建一个置顶的元素,当 child
没有 layout
之前,你没法知道 child
的实际大小,这将是非常有用的组件。ExtendedSliverAppbar
,你可以创建一个跟 SliverAppbar
一样效果的组件,而不用去关心 expandedHeight
。ExtendedTabs,对 TabBarView
组件的扩展,主要包括以下功能:
TabBarView
嵌套的时候,无法连贯切换的问题CarouselIndicator
和 ColorTabIndicator
![]() | ![]() |
ExtendedText,针对 Text
组件的扩展,主要包括以下功能:
InlineSpan
。BackgroundTextSpan
自定文字背景,处理圆角或者中英文背景高度不一致的问题。ExtendedWidgetSpan
支持选择和复制, github.com/flutter/flu… .TextOverflowWidget
自定义文本溢出效果, github.com/flutter/flu… 。![]() | ![]() |
![]() | ![]() |
ExtendedTextField,针对 TextField
组件的扩展,主要包括以下功能:
InlineSpan
。ExtendedWidgetSpan
支持输入框中插入任何 Widget
,比如表情图片。ExtendedWidgetSpan
支持选择和复制, github.com/flutter/flu… 。![]() | ![]() |
![]() | ![]() |
ff_annotation_route,通过注解生成路由映射,统一处理路由,支持 Navigator 1.0
和 Navigator 2.0
。
pub global activate ff_annotation_route
dependencies:
ff_annotation_route_core: any
ff_annotation_route_library: any
工具会自动处理带参数的构造,不需要做特殊处理。唯一需要注意的是,你需要设置 argumentImports
来为 class/enum
的参数提供 import
地址。现在你也可以使用 @FFArgumentImport()
注释来替代.
@FFArgumentImport(‘hide TestMode2’)
import ‘package:example1/src/model/test_model.dart’;
@FFArgumentImport()
import ‘package:example1/src/model/test_model1.dart’ hide TestMode3;
import ‘package:ff_annotation_route_library/ff_annotation_route_library.dart’;
@FFRoute(
name: ‘flutterCandies://testPageE’,
routeName: ‘testPageE’,
description: ‘Show how to push new page with arguments(class)’,
// argumentImports are still work for some cases which you can’t use @FFArgumentImport()
// argumentImports: [
// ‘import ‘package:example1/src/model/test_model.dart’;’,
// ‘import ‘package:example1/src/model/test_model1.dart’;’,
// ],
exts: <String, dynamic>{
‘group’: ‘Complex’,
‘order’: 1,
},
)
class TestPageE extends StatelessWidget {
const TestPageE({
this.testMode = const TestMode(
id: 2,
isTest: false,
),
this.testMode1,
});
factory TestPageE.deafult() => TestPageE(
testMode: TestMode.deafult(),
);
factory TestPageE.required({@required TestMode testMode}) => TestPageE(
testMode: testMode,
);
final TestMode testMode;
final TestMode1 testMode1;
}
ff_route <command> [arguments]
,全部命令如下:-h, --[no-]help 帮助信息。
-p, --path 执行命令的目录,默认当前目录。
-o, --output route 和 helper 文件的输出目录路径,路径相对于主项目的 lib 文件夹。
-n, --name 路由常量类的名称,默认为 Routes
。
-g, --git 扫描 git 引用的 package,你需要指定 package 的名字,多个用 ,
分开
–routes-file-output routes 文件的输出目录路径,路径相对于主项目的lib文件夹
–const-ignore 使用正则表达式忽略一些const(不是全部const都希望生成)
–[no-]route-constants 是否在根项目中的 xxx_route.dart
生成全部路由的静态常量
–[no-]package 这个是否是一个 package
–[no-]supper-arguments 是否生成路由参数帮助类
-s, --[no-]save 是否保存命令到本地。如果保存了,下一次就只需要执行 ff_route
就可以了。
–[no-]null-safety 是否支持空安全,默认 true
MaterialApp
的 onGenerateRoute
回调import ‘package:ff_annotation_route_library/ff_annotation_route_library.dart’;
import ‘package:flutter/material.dart’;
import ‘example_route.dart’;
import ‘example_routes.dart’;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ‘ff_annotation_route demo’,
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: Routes.fluttercandiesMainpage,
onGenerateRoute: (RouteSettings settings) {
return onGenerateRoute(
settings: settings,
getRouteSettings: getRouteSettings,
routeSettingsWrapper: (FFRouteSettings ffRouteSettings) {
if (ffRouteSettings.name == Routes.fluttercandiesMainpage ||
ffRouteSettings.name ==
Routes.fluttercandiesDemogrouppage.name) {
return ffRouteSettings;
}
return ffRouteSettings.copyWith(
widget: CommonWidget(
child: ffRouteSettings.widget,
title: ffRouteSettings.routeName,
));
},
);
},
);
}
}
Navigator.pushNamed(
context,
Routes.flutterCandiesTestPageE.name,
arguments: Routes.flutterCandiesTestPageE.requiredC(
testMode: const TestMode(
id: 100,
isTest: true,
),
),
);
DraggableContainer,可拖拽容器,支持元素移动动画效果,主要包括以下功能:
ImageEditor,强大的原生图片处理库,主要包括以下功能:
SmartDialog,一种更优雅的Dialog 解决方案,主要解决了系统自带的Dialog的一些问题:
AssetPicker,对标微信的多选资源选择器,99%接近于原生微信的操作,主要包括以下功能:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。