环境搭建 脚手架安装:npm i -g @angular/cli 新建项目:ng new my-app 如果安装脚手架报错,强制清理npm缓存后重新安装
组件与模板 当你下载好官方案列后,你可能对目录都不太熟悉,不过不用关心
理解模板表达式上下文 组建实列就是模板表达式的上下文对象(Expression context)
表达式中的上下文变量是由 模板变量 、 指令的上下文变量(如果有)和 组件的成员变量 叠加而成的。 当存在相同的表达式变量优先顺序:模板变量、指令的上下文变量、组件的成员变量
import { Component } from '@angular/core';
//my-app/src/app/app.component.ts @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { private data0:Number = 1121; data1 = '
dddddd
'; data2 = { aaa:222 }; data3(){ }; data4 = null; data5 = undefined; data6 = [1,2,3] }
data0 :{{data0}}
data1 :{{data1}}
data2 :{{data2}}
data3 :{{data3}}
data4 :{{data4}}
data5 :{{data5}}
data6 :{{data6}}
data7 :{{data7}}
理解HTML attribute 与 DOM property 先来看一个列子
//html:
var outPutVal = function(inO){
console.log('getAttribute:',inO.getAttribute('value'));
console.log('inO.value',inO.value);
}
window.onload = function(){
var inO = document.querySelector('input');
// 初始化value后打印
outPutVal(inO);
//getAttribute: a
//test.html:14 inO.value a
document.onclick = function(){
// 修改value为aaaaa后打印
outPutVal(inO);
//getAttribute: a
//test.html:14 inO.value aaaaa
}
}
//1.少量 HTML attribute 和 property 之间有着 1:1 的映射,如 id。
//2.有些 HTML attribute 没有对应的 property,如 colspan。
//3.有些 DOM property 没有对应的 attribute,如 textContent。
//4.大量 HTML attribute 看起来映射到了 property…… 但却不像你想的那样!
angular中模板绑定是通过 property 和事件来工作的,而不是 attribute
特殊的attribute 绑定
[attr.aria-label]="actionName"
1 2 指令 属性指令 ngClass ngStyle ngModel 结构型指令 ngIf ngFor ngSwitch ng-template *号语法 {{hero.name}}
{{hero.name}}
1 2 3 4 5
({{i}}) {{hero.name}}
({{i}}) {{hero.name}}
1 2 3 4 5 6 7 ng-template 会将内部包裹的元素变成注释
ng-container ng-template 会无副作用的包裹内部元素
组件(拥有模板的指令) ng g c components/A 创建组件 1 组件通信 1.输入属性 @Input() //a.component.ts @Input() inAttr:String;
private _name:String = '';
@Input() set inAttr2(name:String){ this._name = name; }
get inAttr2():String{ return this._name; }
2.输出属性 @Output() //子组件中 @Output() myEvent:EventEmitter = new EventEmitter(); this.myEvent.emit(Data);
//父组件中
(myEvent)="myHandleEvent($event)"
myHandleEvent(Data:DataType){
}
3.中间人模式(兄弟组件通过公共的父组件传值) 4.父组件获得子组件引用 #child(只可以在组件模板中使用)
@ViewChild()父组件类插入子组件 (可以在类中使用) 被注入的计时器组件只有在 Angular 显示了父组件视图之后才能访问 Angular 的单向数据流规则会阻止在同一个周期内更新父组件视图。应用在显示秒数之前会被迫再等一轮。 使用 setTimeout() 来等下一轮 @ViewChild(CountdownTimerComponent) private timerComponent: CountdownTimerComponent;
ngAfterViewInit() { // Redefine seconds()
to get from the CountdownTimerComponent.seconds
... // but wait a tick first to avoid one-time devMode // unidirectional-data-flow-violation error setTimeout(() => this.seconds = () => this.timerComponent.seconds, 0); }
6.通过服务传递数据 自定义指令 ng g d myDirective/demo 1 1.属性型指令
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
@Directive({ selector: '[appDemo]' }) export class DemoDirective {
constructor(private el:ElementRef) { } // 注册事件 @HostListener('click') show(){ console.log(this.el.nativeElement); console.log(this.ss); } //指令参数,当参数名与指令名相同时,可以直接赋值给指令 @Input() ss:String = 'aaa'; }
2.结构型指令
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
/**
Add the template content to the DOM unless the condition is true. */ @Directive({ selector: '[appUnless]'}) export class UnlessDirective { //第一次传入true时不执行任何if分支 private hasView = false;
constructor( private templateRef: TemplateRef, private viewContainer: ViewContainerRef) { }
@Input() set appUnless(condition: boolean) { if (!condition && !this.hasView) { this.viewContainer.createEmbeddedView(this.templateRef); this.hasView = true; } else if (condition && this.hasView) { this.viewContainer.clear(); this.hasView = false; } } }
目录结构 依赖注入 angular实现控制反转的手段就是依赖注入 依赖注入的好处:依赖注入会让你用一种松耦合的方式去写代码,易于调试 注入器: //只有加入@injectable()才能注入其他 construct(private productService:ProductService){...}; 1 2 提供器 作用域与优先级 provider:[ProductService] provider:[{provide:ProductService,useClass:ProductService}] provider:[{provide:ProductService,useClass:AnotherProductService}] provider:[{provide:ProductService,useFactory:(参数A)=>{return ob},deps:[参数A]}] provider:[{provide:"IS_DEV_ENV",useValue:{isDev:true}}] 1 2 3 4 5 @angular/router路由 1 2 //app.module.ts //导入路由核心模块 import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [ {path:'**',component:AComponent} ];
@NgModule({ ... imports: [RouterModule.forRoot(routes)] ... }) export class AppModule { }
Routes路由配置介绍 path "**"表示匹配所有 redirectTo “表示要转走的路径” pathMatch "full"表示匹配程度 component 表示要显示的组件 data 数据传递 children:[] 子路由 canActivate canActivate:[PermissionGuard] canDeactivate canDeactivate:[FocusGuard] outlet 辅助路由 resolve resolve:{Stock:StockResolve} Router可调用navigate与navigateByUrl() RouterLink routelink routelink routelink 辅助路由 http://localhost:4200/a(aux:aaa) 1 2 3 4 路由数据传递: //1. [routerLink] = "['/path',1]" //http://localhost:4200/path/1 // this.routeInfo.snapshot.queryParams //2. [routerLink]="['/b',1]" [queryParams]="{id:3}" // http://localhost:4200/b/1?id=3 // this.routeInfo.snapshot.params // 3. {path:'a',component:AComponent,data:{id:666}} //this.routeInfo.snapshot.queryParams //this.routeInfo.snapshot.data
ActivatedRoute 常用:this.routeInfo见上面 守卫路由 1.canActivate export class PermissionGuard implements CanActivate{ canActivate(){ let hasPemission:boolean = Math.random() < 0.5; return hasPemission; } } 1 2 3 4 5 6 2.canDeactivate export class FocusGuard implements CanDeactivate{ canDeactivate(component:CComponent){ if(component.isFoucs){ return true; }else { return confirm('不关注一下嘛?'); } } }
9 3.resolve 读取数据前 @Injectable() export class StockResolve implements Resolve{ constructor( private route:Router ){} resolve(route:ActivatedRouteSnapshot,state:RouterStateSnapshot){ return new Stock(1,'name'); } }
响应式编程: import {Observable} from "rxjs"; Observable.from([1,2,3,4]) .filter(e => e%2 == 0) .map(e => e*e) .subscribe( e => console.log(e), err => console.error(err), () => console.log("结束啦") ) //4,16,结束啦
10 生命周期钩子 初始化阶段 //1.constructor //2.ngOnChanges父组件初始化子组件输入属性时被调用 (不可变对象的改变) ngOnChanges(changes:SimpleChanges):void{
} //3.ngOnInit //4.ngDoCheck 一定要判断一下你想要的变化发生时 //5.ngAfterContentInit //6.ngAfterContentChecked //7.ngAfterViewInit //8.ngAfterViewChecked 1
11 变化阶段 //1.ngOnChanges //2.ngDoCheck //3.ngAfterContentChecked //4.ngAfterViewChecked 1 2 组件销毁阶段 //1.ngOnDestroy // 在路由变更时改变 1 2 ngAfterViewInit,ngAfterViewChecked //1.子组件组装好父组件才会组装 //2.组件是在试图组装完毕调用 //3.再此方法中不可以更改视图数据
//s.component.ts greeting(name:string){ ... } //f.component.html //f.component.ts @viewChild("child1") child1:sCompenent;
this.child1.greeting(...);
ngAfterContentInit,ngAfterContentChecked 投影 1.子组件
2.父组件 .......
表单 // 在imports中: // ReactiveFormsModule响应式表单 // FormsModule模板式表单 1 2 3 模板式表单 // 在angular中会自动加上ngForm来处理表单,如果不用angular来处理则加上ngNoForm //在表单中加上#myForm="ngForm",则可以在页面使用{{myForm.value | json}}去检测表单中有ngModule的value 对象名为name值 //(ngSubmit)="..."
NgForm => FormGroup ngModel=> ngModelGroup
{{myForm.value | json}} second值是:{{second.value}}
模板式表单校验 指令: // ng g directive f/s @Directive({ providers:[{provide:NG_VALIDATORS,useValue:mobileValidator,multi:true}] }) 1 2 3 4 响应式表单 private nickName = new FormControl('tom'); private passwordInfo = new FormGroup({ password: new FormControl(), passwordConfirm:new FormControl() }); private email = new FormArray([ new FormControl('[email protected] '), new FormControl('[email protected] ') ]);
FormControl FormGroup FormArray
private formModel:FormGroup; private fb:FormBuilder = new FormBuilder(); /this.formModel = new FormGroup({ nikname:new FormControl(), emails:new FormArray([ new FormControl() ]), mobile:new FormControl(), passwordInfo:new FormGroup({ password:new FormControl(), passwordConfirm:new FormControl() }) }); / this.formModel = this.fb.group({ nikname:[''], emails:this.fb.array([ [''] ]), mobile:[''], passwordInfo:this.fb.group({ password:[''], passwordConfirm:[''] }) });
angular表单 校验器 //自定义校验器 xxx(param:AbstractControl):{[key:string]:any}{ return null; } // eg: moblieValid(moblie:FormControl):any{ .......... // return null;表示成功 // return {...};不成功 }
//预定义校验器 Validators.required ...... nikname:["xxxx",[Validators.required,.....]] ..................... let niknameValid;boolean = this.formModel.get('nikname').valid; passwordInfo:this.fb.group({ password:[''], passwordConfirm:[''] },{validator:this.passwordValidator}) //一次校验多个字段
22 显示错误信息
1 异步校验 状态字段: ———————————————— 版权声明:本文为CSDN博主「fullSE」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_31631167/article/details/78319788
你可能感兴趣的:(angula7.0.0使用指南)
《Windows命令提示符(CMD)函数全解析与应用研究》
Small踢倒coffee_氕氘氚
经验分享 笔记
##摘要本文深入探讨了Windows命令提示符(CMD)的核心功能和应用。文章详细解析了CMD的基本命令、批处理脚本编写技巧以及高级功能,包括网络命令、系统管理命令和磁盘管理命令。通过实际案例研究,展示了CMD在系统管理、网络配置和自动化任务中的广泛应用。研究表明,CMD作为Windows系统的重要工具,在提高工作效率和系统管理能力方面具有显著优势。本文旨在为读者提供全面的CMD使用指南,帮助其更
Azure AI Document Intelligence 使用指南
scaFHIO
azure 人工智能 flask python
AzureAIDocumentIntelligence使用指南AzureAIDocumentIntelligence(原名AzureFormRecognizer)是一项基于机器学习的服务,可以从数字或扫描PDF、图像、Office和HTML文件中提取文本(包括手写)、表格、文档结构(如标题、节标题等)和键值对。它支持多种格式,包括PDF、JPEG/JPG、PNG、BMP、TIFF、HEIF、DOC
程序员提示词使用指南:从入门到精通的Prompt技巧
shandianfk_com
ChatGPT AI prompt 人工智能 深度学习
在当今的编程世界里,编写高效、简洁的代码一直是每个程序员追求的目标。但随着AI技术的发展,程序员们有了新的“武器”——Prompt提示词。Prompt,即提示词,是指在编程过程中,给AI模型提供的指令或问题,以便获得所需的代码或答案。今天,我们就来详细探讨一下如何从入门到精通地使用Prompt提示词,帮助你在编程过程中事半功倍。首先,我们来了解一下Prompt的基础知识。一、什么是Prompt提示
ESP-IDF 开源框架安装与使用指南
钟新骅
ESP-IDF开源框架安装与使用指南esp-idfEspressifIoTDevelopmentFramework.OfficialdevelopmentframeworkforEspressifSoCs.项目地址:https://gitcode.com/gh_mirrors/es/esp-idf一、项目介绍ESP-IDF(EspressifIoTDevelopmentFramework)是Esp
Visual Studio Code 基本使用指南
The god of big data
教程 神器?三叉戟? vscode ide 编辑器
VisualStudioCode(简称VSCode)是一款由微软开发的免费、开源、跨平台的代码编辑器,凭借其轻量级设计、丰富的插件生态和强大的功能,成为全球开发者的首选工具。本文将从安装配置到核心功能,全面解析VSCode的基本使用方法。一、安装与配置下载与安装访问VSCode官网下载对应操作系统的安装包(支持Windows、macOS、Linux)134。安装类型选择:UserInstaller
【2025】Cursor深度使用指南|环境配置与常见问题解决方案
herobrineAC12
AI编程
本文详细解析新一代智能编程工具的核心功能,提供环境搭建指引与典型问题应对策略,助力开发者提升工作效率。本文配套资料下载cursor永久免费完整资源包1.开发工具特性解析该编程工具整合了先进的智能辅助技术,采用与主流编辑器相似的界面布局。对于熟悉常见开发环境的用户,可以快速实现功能迁移与操作适配,同时支持扩展管理、运行环境配置等核心功能。2.核心操作指令汇总提升效率的四大组合键:Tab键:智能补全代
go-etcd 安装与使用指南
尤瑾竹Emery
go-etcd安装与使用指南go-etcdDEPRECATED-pleaseusetheofficialclientathttps://github.com/coreos/etcd/tree/master/client项目地址:https://gitcode.com/gh_mirrors/go/go-etcd1.项目目录结构及介绍go-etcd是一个用于与etcd交互的Go语言客户端库。由于您提供
RISC-V ISA 模拟器Spike安装与使用指南
郝赢泉
RISC-VISA模拟器Spike安装与使用指南riscv-isa-simSpike,aRISC-VISASimulator项目地址:https://gitcode.com/gh_mirrors/ri/riscv-isa-sim1.项目目录结构及介绍Spike,一个强大的RISC-V指令集模拟器,其仓库的目录结构精心设计以支持灵活的开发和维护。以下是关键的目录及其功能简介:riscv/insns:
Manus使用指南(机不可失)
Real Man★
算法
Manus是一款功能强大的通用型AIAgent,能够通过自主任务分解、工具调用和动态规划,帮助用户高效完成复杂任务。以下是Manus的详细使用指南:一、注册与登录获取邀请码通过官网预约、社交媒体活动或合作伙伴渠道获取邀请码。访问Manus官网注册账号并输入邀请码。登录与设置使用邮箱或手机号登录。根据提示完成初始设置(如选择语言、绑定支付方式)。二、核心功能与使用场景任务分解与执行输入任务:在对话框
Maven 使用指南:基础 + 进阶 + 高级用法
波波有料
maven java 开发语言
目录前言Maven是Java生态中最流行的项目管理和构建工具之一。它通过pom.xml文件管理项目的依赖、构建生命周期和插件配置。本文将从基础到高级,全面复习Maven的用法,并提供详细的代码示例和注意事项。同时,我们将深入探讨dependencyManagement标签的作用,并解释Maven中所有重要标签的用法。1.基础用法1.1Maven安装与配置1.3pom.xml基础配置1.4常用命令2
新手必看!如何快速上手DeepSeek?
逆旅行天涯
deepseek
之前尝试了许多AI,包括但不限于Kimi、豆包等。昨晚抱着试一试的态度,体验了一下这两天风很大的DeepSeek,没想到真的让我眼前一亮!相较于其他AI直接给出答案,DeepSeek能显示它的完整逻辑推理,真的很“人”化!为了让更多朋友能够快速了解上手,因此,✅让DeepSeek帮我整合了它的使用指南,正好大家也能感受。一、先懂原理:DeepSeek的两种超能力1.深度思考(R1)——AI的超级大
PyQt5 图形标注工具开发教程(可扩展)
蜡笔小新星
PyQt5 qt 开发语言 python 经验分享 学习 前端
文章目录概述核心功能解析1.智能多边形系统2.数据持久化设计3.工业级交互设计使用指南多边形标注流程矩形标注流程数据保存示例完整实现代码扩展建议概述本教程将指导您创建一个专业的图形标注工具,支持以下核心功能:智能十字准星:实时跟随鼠标的辅助对齐线多边形标注:三点自动闭合,支持实时预览矩形标注:拖拽式绘制,自动坐标标准化数据持久化:JSON格式保存标注坐标交互优化:右键清空、模式切换等功能初版界面示
Git使用指南 - 从入坑到入坟(bushi)
铸剑zj
生产力工具 git github 编辑器
Git完全使用指南-从入门到入坟Git完全使用指南Git完全使用指南-从入门到入坟第一部分:Git入门基础1.Git简介什么是Git为什么要使用GitGit与SVN的区别Git工作区域Git文件状态2.环境搭建Windows系统安装Git基础配置配置SSH密钥Git配置级别常用配置项3.基本命令创建仓库文件操作提交更改状态查看差异比较历史记录撤销修改第二部分:Git协作开发4.分支管理分支基础概念
Python中的PDF处理工具:PyPDF2和ReportLab使用指南
萧鼎
python基础到进阶教程 python pdf pypdf2 reportlab
Python中的PDF处理工具:PyPDF2和ReportLab使用指南在日常工作和项目中,PDF文件处理是个常见需求,不论是合并报告、加密文档、填充表单,还是生成发票。Python中有许多用于操作PDF文件的库,其中PyPDF2和ReportLab是两个广泛使用的工具:前者用于PDF文档的读取和修改,后者用于从头生成PDF文件。在这篇博客中,我们将介绍如何使用PyPDF2和ReportLab完成
OpenHarmony 鸿蒙使用指南——概述
AIGC龙哥
harmonyos 华为
简介OpenHarmony采用多内核(Linux内核或者LiteOS)设计,支持系统在不同资源容量的设备部署。当相同的硬件部署不同内核时,如何能够让设备驱动程序在不同内核间平滑迁移,消除驱动代码移植适配和维护的负担,是OpenHarmony驱动子系统需要解决的重要问题。为了缩减驱动开发者的驱动开发周期,降低三方设备驱动集成难度,OpenHarmony驱动子系统支持以下关键特性和能力。弹性化的框架能
Docker中GPU的使用指南
俞兆鹏
云原生实践 docker 容器 运维
在当今的计算领域,GPU(图形处理单元)已经成为了加速各种计算密集型任务的关键硬件,特别是在深度学习、科学模拟和高性能计算等领域。Docker作为流行的容器化平台,允许开发者将应用程序及其依赖打包成一个可移植的容器,在不同的环境中运行。当需要在Docker容器中利用GPU的计算能力时,我们需要进行一些特定的配置和设置。本文将详细介绍如何在Docker中使用GPU,从环境准备到实际应用,帮助你充分利
跨平台 日志库 log4cpp :使用指南
恋恋西风
C/C++ java 前端 开发语言
1.log4cpp日志介绍log4cplus是一个灵活的日志库,不仅仅可以跨平台,功能强大,受到了Java的log4j库的启发,并为C++设计。它提供了丰富的日志级别、日志格式和输出目标的配置选项,使得开发者能够根据应用程序的需要灵活地记录信息。2.特点灵活性:log4cplus提供了多种日志级别和输出选项,支持异步和同步日志记录。易用性:它的API简单直观,易于集成到现有项目中。可配置性:可以通
python如何爬取实时人流量_使用python爬取微信宜出行人流量数据
张衍军
python如何爬取实时人流量
代码地址:https://liujiao111.github.io/2019/06/18/easygo/工具介绍:该工具基于微信中的宜出行提供的数据接口进行爬取,能够爬取一定范围内的当前时间点的人流量数据。环境:windowspython3+安装第三方包:缺啥安装啥使用指南:申请多个qq号,并将qq号放入当前目录下的qqlist.py文件中,格式如下:qq_list=[["11111111","1
grok 3官网入口_grok 3国内使用指南
人工智能
Grok是xAI于2023年11月推出的创新型语言模型。与市面上众多聊天机器人相比,Grok不只是一个简单的工具,它的推出标志着AI领域的一次重要突破。Grok被设计为一个具有独特个性和多重功能的智能助手,让它在人们的日常生活中扮演更加有趣和实用的角色。GrokAI的独特特性1.幽默感与个性化的“叛逆精神”Grok最与众不同的地方之一就是它被赋予了极具幽默感的个性。它不像传统的聊天机器人那样严肃、
使用指南:react-facebook-pixel开源项目深度探索
梅研芊
使用指南:react-facebook-pixel开源项目深度探索react-facebook-pixelReactJSwrapperforFacebook'sPixel项目地址:https://gitcode.com/gh_mirrors/re/react-facebook-pixel1.项目目录结构及介绍react-facebook-pixel是一个专为React应用程序设计的库,用于轻松集成
Vue3 KeepAlive原理与使用指南:探索组件缓存与替代方案
念九_ysl
Vue vue.js 前端 javascript
一、为什么需要组件缓存?在动态组件切换、路由跳转等场景中,频繁的组件销毁/重建会导致以下问题:状态丢失:用户输入的表单数据、滚动位置等无法保留2.性能损耗:重复的组件初始化消耗资源3.交互体验:页面元素闪烁,动画效果中断Vue3的KeepAlive正是为解决这些问题而生的内置缓存解决方案。二、KeepAlive核心原理剖析1.缓存机制使用LRU(最近最少使用)缓存策略创建特殊虚拟节点标识缓存组件通
NCU使用指南及模型性能测试(pytorch2.5.1)
Jakari
cuda gpu ncu python docker 深度学习 pytorch
本项目在原项目的基础上增加了NsightCompute(ncu)测试的功能,并对相关脚本功能做了一些健硕性的增强,同时,对一些框架的代码进行了更改(主要是数据集的大小和epoch等),增加模型性能测试的效率,同时完善了模型LSTM的有关功能。OverviewNsightCompute(NCU)是NVIDIA提供的GPU内核级性能分析工具,专注于CUDA程序的优化。它提供详细的计算资源、内存带宽、指
如何使用DeepSeek进行高效数据挖掘与分析
Small踢倒coffee_氕氘氚
笔记 经验分享 迭代器模式
##摘要随着大数据时代的到来,数据挖掘与分析技术在各行各业中扮演着越来越重要的角色。DeepSeek作为一种先进的数据挖掘工具,能够帮助用户从海量数据中提取有价值的信息。本文将详细介绍DeepSeek的功能、使用方法及其在实际应用中的优势,旨在为用户提供一份全面的使用指南。##关键词DeepSeek、数据挖掘、数据分析、机器学习、大数据##引言###背景在当今信息爆炸的时代,数据已成为企业决策的重
Git Sparse Checkout使用指南
KKView远程查看手机电脑摄像头和屏幕
git github 服务器
GitSparseCheckout使用指南Git的clone,默认是直接拉取整个远程仓库,如果项目比较大,在进行clone时,会导致拉取到大量和自己无关的内容到本地,占用很多硬盘空间。Git在1.7版本后,已经支持只Checkout部分内容,这个功能叫做SparseCheckout(稀疏检出),使用该功能可以节省本地硬盘空间。使用步骤准备工作:如果本地还没有版本库,则先执行下述命令gitinitc
深入理解 Promise:使用指南与手动实现
vvilkim
JavaScript javascript ajax 开发语言
Promise是JavaScript中处理异步操作的核心工具之一。它提供了一种更优雅的方式来管理异步代码,避免了回调地狱(CallbackHell)。本文将分为两部分:第一部分介绍Promise的使用与创建指南,第二部分手动实现一个简化版的Promise,帮助你深入理解其工作原理。第一部分:Promise的使用与创建指南1.什么是Promise?Promise是一个表示异步操作最终完成(或失败)及
Deepseek 使用指南与提问优化策略
西瓜拍两瓣
ai 语言模型 python gpt
序言随着人工智能技术的迅猛发展,语义搜索已成为提升信息检索效率和用户体验的核心工具。DeepSeek作为一款先进的语义搜索引擎,通过自然语言处理(NLP)和机器学习技术,能够深入理解用户查询的语义意图,提供高度精准的搜索结果。本文将详细介绍DeepSeek的核心功能、集成方法,并深入探讨如何通过优化提问策略,最大化利用DeepSeek的语义搜索能力,从而提升信息检索的效率和准确性。访问DeepSe
grok 3官网入口_grok 3国内使用指南
人工智能
Grok是xAI于2023年11月推出的创新型语言模型。与市面上众多聊天机器人相比,Grok不只是一个简单的工具,它的推出标志着AI领域的一次重要突破。Grok被设计为一个具有独特个性和多重功能的智能助手,让它在人们的日常生活中扮演更加有趣和实用的角色。GrokAI的独特特性1.幽默感与个性化的“叛逆精神”Grok最与众不同的地方之一就是它被赋予了极具幽默感的个性。它不像传统的聊天机器人那样严肃、
清华「DeepSeek从入门到精通」正式发布!104页超全解析使用教程
职场程序猿
deepseek ai
看了这么多deepseek使用指导,包括什么使用指南,15天指导手册,还有一些自媒体账号写的使用方法,普遍的问题是十分粗糙,没有实际的指导意义。还有些用的是chatGPT的训练方式,要知道,DeepSeek和chatGPT是两种模型,一个是推理型,一个是指令型,这是驴唇不对马嘴啊。虽然deepseek官方也提供了提示库文档,进行了13种场景的分类,但是具体举例也不够详细。有需要可以自取:「Deep
Python PDF神器PyMuPDF使用指南 (六)——Document类详解
塞大花
Python学习笔记 pdf python PDF文件提取 PDF内容提取 PDF数据提取 PDF RAG PDF文件内容提取
系列文章:PythonPDF神器PyMuPDF使用指南(一)——安装和基础功能PythonPDF神器PyMuPDF使用指南(二)——文件和文本功能PythonPDF神器PyMuPDF使用指南(三)——图像和注释功能PythonPDF神器PyMuPDF使用指南(四)——绘图、多线程和OCR功能PythonPDF神器PyMuPDF使用指南(五)——命令行使用PythonPDF神器PyMuPDF使用指南
【STM32】HAL库 RTC实时时钟,获取日历时间
youuuuvvu
STM32_HAL stm32 单片机
系列文章目录【STM32】HAL库新建MDK工程【STM32】HAL库串口轮询发送文章目录系列文章目录前言一、STM32CubeMX设置二、代码前言RTC(Real-TimeClock)是一种实时时钟,它可以提供准确的时间和日期信息,并且可以在系统关闭时继续运行。RTC通常用于需要时间戳或定时操作的应用程序中。RTC的使用指南:初始化:在cubemx中,需要初始化RTC实例并设置时间和日期。读取时
jsonp 常用util方法
hw1287789687
jsonp jsonp常用方法 jsonp callback
jsonp 常用java方法
(1)以jsonp的形式返回:函数名(json字符串)
/***
* 用于jsonp调用
* @param map : 用于构造json数据
* @param callback : 回调的javascript方法名
* @param filters : <code>SimpleBeanPropertyFilter theFilt
多线程场景
alafqq
多线程
0
能不能简单描述一下你在java web开发中需要用到多线程编程的场景?0
对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?
Java多线程
2012年11月23日 15:41 Young9007 Young9007
4
0 0 4
Comment添加评论关注(2)
3个答案 按时间排序 按投票排序
0
0
最典型的如:
1、
Maven学习——修改Maven的本地仓库路径
Kai_Ge
maven
安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。但是windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。
placeholder的浏览器兼容
120153216
placeholder
【前言】
自从html5引入placeholder后,问题就来了,
不支持html5的浏览器也先有这样的效果,
各种兼容,之前考虑,今天测试人员逮住不放,
想了个解决办法,看样子还行,记录一下。
【原理】
不使用placeholder,而是模拟placeholder的效果,
大概就是用focus和focusout效果。
【代码】
<scrip
debian_用iso文件创建本地apt源
2002wmj
Debian
1.将N个debian-506-amd64-DVD-N.iso存放于本地或其他媒介内,本例是放在本机/iso/目录下
2.创建N个挂载点目录
如下:
debian:~#mkdir –r /media/dvd1
debian:~#mkdir –r /media/dvd2
debian:~#mkdir –r /media/dvd3
….
debian:~#mkdir –r /media
SQLSERVER耗时最长的SQL
357029540
SQL Server
对于DBA来说,经常要知道存储过程的某些信息:
1. 执行了多少次
2. 执行的执行计划如何
3. 执行的平均读写如何
4. 执行平均需要多少时间
列名 &
com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil
7454103
eclipse
今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了,解决方法如下:
错误提示信息:
An error has occurred.See error log for more details.
Reason:
com/genuitec/
用正则删除文本中的html标签
adminjun
java html 正则表达式 去掉html标签
使用文本编辑器录入文章存入数据中的文本是HTML标签格式,由于业务需要对HTML标签进行去除只保留纯净的文本内容,于是乎Java实现自动过滤。
如下:
public static String Html2Text(String inputString) {
String htmlStr = inputString; // 含html标签的字符串
String textSt
嵌入式系统设计中常用总线和接口
aijuans
linux 基础
嵌入式系统设计中常用总线和接口
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线
Java函数调用方式——按值传递
ayaoxinchao
java 按值传递 对象 基础数据类型
Java使用按值传递的函数调用方式,这往往使我感到迷惑。因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递。其实经过学习,Java在任何地方,都一直发挥着按值传递的本色。
首先,让我们看一看基础数据类型是如何按值传递的。
public static void main(String[] args) {
int a = 2;
ios音量线性下降
bewithme
ios音量
直接上代码吧
//second 几秒内下降为0
- (void)reduceVolume:(int)second {
KGVoicePlayer *player = [KGVoicePlayer defaultPlayer];
if (!_flag) {
_tempVolume = player.volume;
与其怨它不如爱它
bijian1013
选择 理想 职业 规划
抱怨工作是年轻人的常态,但爱工作才是积极的心态,与其怨它不如爱它。
一般来说,在公司干了一两年后,不少年轻人容易产生怨言,除了具体的埋怨公司“扭门”,埋怨上司无能以外,也有许多人是因为根本不爱自已的那份工作,工作完全成了谋生的手段,跟自已的性格、专业、爱好都相差甚远。
一边时间不够用一边浪费时间
bingyingao
工作 时间 浪费
一方面感觉时间严重不够用,另一方面又在不停的浪费时间。
每一个周末,晚上熬夜看电影到凌晨一点,早上起不来一直睡到10点钟,10点钟起床,吃饭后玩手机到下午一点。
精神还是很差,下午像一直野鬼在城市里晃荡。
为何不尝试晚上10点钟就睡,早上7点就起,时间完全是一样的,把看电影的时间换到早上,精神好,气色好,一天好状态。
控制让自己周末早睡早起,你就成功了一半。
有多少个工作
【Scala八】Scala核心二:隐式转换
bit1129
scala
Implicits work like this: if you call a method on a Scala object, and the Scala compiler does not see a definition for that method in the class definition for that object, the compiler will try to con
sudoku slover in Haskell (2)
bookjovi
haskell sudoku
继续精简haskell版的sudoku程序,稍微改了一下,这次用了8行,同时性能也提高了很多,对每个空格的所有解不是通过尝试算出来的,而是直接得出。
board = [0,3,4,1,7,0,5,0,0,
0,6,0,0,0,8,3,0,1,
7,0,0,3,0,0,0,0,6,
5,0,0,6,4,0,8,0,7,
Java-Collections Framework学习与总结-HashSet和LinkedHashSet
BrokenDreams
linkedhashset
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。
它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序
读《研磨设计模式》-代码笔记-备忘录模式-Memento
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
/*
* 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘”
《RAW格式照片处理专业技法》笔记
cherishLC
PS
注意,这不是教程!仅记录楼主之前不太了解的
一、色彩(空间)管理
作者建议采用ProRGB(色域最广),但camera raw中设为ProRGB,而PS中则在ProRGB的基础上,将gamma值设为了1.8(更符合人眼)
注意:bridge、camera raw怎么设置显示、输出的颜色都是正确的(会读取文件内的颜色配置文件),但用PS输出jpg文件时,必须先用Edit->conv
使用 Git 下载 Spring 源码 编译 for Eclipse
crabdave
eclipse
使用 Git 下载 Spring 源码 编译 for Eclipse
1、安装gradle,下载 http://www.gradle.org/downloads
配置环境变量GRADLE_HOME,配置PATH %GRADLE_HOME%/bin,cmd,gradle -v
2、spring4 用jdk8 下载 https://jdk8.java.
mysql连接拒绝问题
daizj
mysql 登录权限
mysql中在其它机器连接mysql服务器时报错问题汇总
一、[running]
[email protected] :~$mysql -uroot -h 192.168.9.108 -p //带-p参数,在下一步进行密码输入
Enter password: //无字符串输入
ERROR 1045 (28000): Access
Google Chrome 为何打压 H.264
dsjt
apple html5 chrome Google
Google 今天在 Chromium 官方博客宣布由于 H.264 编解码器并非开放标准,Chrome 将在几个月后正式停止对 H.264 视频解码的支持,全面采用开放的 WebM 和 Theora 格式。
Google 在博客上表示,自从 WebM 视频编解码器推出以后,在性能、厂商支持以及独立性方面已经取得了很大的进步,为了与 Chromium 现有支持的編解码器保持一致,Chrome
yii 获取控制器名 和方法名
dcj3sjt126com
yii framework
1. 获取控制器名
在控制器中获取控制器名: $name = $this->getId();
在视图中获取控制器名: $name = Yii::app()->controller->id;
2. 获取动作名
在控制器beforeAction()回调函数中获取动作名: $name =
Android知识总结(二)
come_for_dream
android
明天要考试了,速速总结如下
1、Activity的启动模式
standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。)
singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Ac
高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元
gcq511120594
工作 项目管理
高洛峰,兄弟连IT教育合伙人、猿代码创始人、PHP培训第一人、《细说PHP》作者、软件开发工程师、《IT峰播》主创人、PHP讲师的鼻祖!
首期现在的进程刚刚过半,徒弟们真的很棒,人品都没的说,团结互助,学习刻苦,工作认真积极,灵活上进。我几乎会把他们全部留下来,现在已有一多半安排了实际的工作,并取得了很好的成绩。等他们出徒之日,凭他们的能力一定能够拿到高薪,而且我还承诺过一个徒弟,当他拿到大学毕
linux expect
heipark
expect
1. 创建、编辑文件go.sh
#!/usr/bin/expect
spawn sudo su admin
expect "*password*" { send "13456\r\n" }
interact
2. 设置权限
chmod u+x go.sh 3.
Spring4.1新特性——静态资源处理增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
idea ubuntuxia 乱码
liyonghui160com
1.首先需要在windows字体目录下或者其它地方找到simsun.ttf 这个 字体文件。
2.在ubuntu 下可以执行下面操作安装该字体:
sudo mkdir /usr/share/fonts/truetype/simsun
sudo cp simsun.ttf /usr/share/fonts/truetype/simsun
fc-cache -f -v
改良程序的11技巧
pda158
技巧
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。
让我们看一些基本的编程技巧:
尽量保持方法简短
永远永远不要把同一个变量用于多个不同的
300个涵盖IT各方面的免费资源(下)——工作与学习篇
shoothao
创业 免费资源 学习课程 远程工作
工作与生产效率:
A. 背景声音
Noisli:背景噪音与颜色生成器。
Noizio:环境声均衡器。
Defonic:世界上任何的声响都可混合成美丽的旋律。
Designers.mx:设计者为设计者所准备的播放列表。
Coffitivity:这里的声音就像咖啡馆里放的一样。
B. 避免注意力分散
Self Co
深入浅出RPC
uule
rpc
深入浅出RPC-浅出篇
深入浅出RPC-深入篇
RPC
Remote Procedure Call Protocol
远程过程调用协议
它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发