原文  http://codin.im/2016/09/18/angular2-architecture-intro/

http://www.tuicool.com/articles/EvEZjmZ


时间 2016-10-12 15:39:06 Coding I am

本文将从框架角度简单介绍Angular2的基本架构,如果你对Angular2还不太了解,请先阅读另两篇文章Angular2入门教程1 和 Angular2入门教程-2 实现TodoList App ,然后再阅读此文。

Angular2是一个完整的单页应用开发框架。很多人拿它跟React比,相比来说,React是一个基础框架,更像是一个库,你需要很多第三方的库才能方便的开发一个完整的应用。而Angular2则提供了很多组件,或者叫库,比如Directive(指令)、组件框架、模板、依赖注入、绑定、路由等,在这些库的帮助下,你更多的只需要关注具体业务的开发。

当你编写一个Angular2的应用的时,你从一个Component开始,编写这个Component需要展示的页面模板,并在Component中控制模板上显示的内容和用户的交互。一般还需要编写一个service来实现业务逻辑。你还需要针对这个模板编写一个样式。最后,你需要把这个Component和service定义到一个module(模块)里。

这样就完成了这个应用模块的开发。剩下的就是用Angular提供的方法去启动应用的 root module ,也就是根模块。如果你的应用有几个模块需要交互或跳转,就需要定义路由。

所以,你只需要开发业务相关的Component组件,以及组件之间的数据交互和页面跳转,剩下的像页面文件的渲染、变量的双向绑定、用户事件的响应、页面的跳转和参数传递等等,都由框架来完成。

在这篇文章里,我们就来看看Angular2框架背后提供的一些功能,了解了这些,有助于我们理解一个Angular应用是怎么工作的,从而帮助我们更好的利用框架,开发出更高质量的应用。

Angular2框架,提供了以下几个基本的功能:

  • 模块
  • 组件
  • 服务
  • 模板
  • 数据绑定
  • 依赖注入

模块是一个业务功能的集合,我们可以把几个组件、服务和其他一些业务模型的定义都加到一个模块里,他的功能更多的是帮助我们更好的组织我们的代码,方便代码重用。模板、数据绑定、依赖注入是定义一套这个框架的规则和语法,我们用这套规则和语法编写的代码,就能够享受Angular2给我们带来的便利。

模块

Angular2的模块可以将组件、服务、指令、方法等封装成一个模块,如下图所示(图片摘自官网):

比如我们开发一个系统,里面包含一个”我的消息”的功能,这个功能包含一些组件,如消息列表、详细详情、回复、新消息和好友列表等。除了这些组件,我们又需要相应的服务来跟服务器交互来提供数据。我们可能也需要一些环境变量等。我们可以把这些组件、服务等都封装在一个方法里面,像这样:

import{ NgModule }from'@angular/core';
import{ CommonModule }from'@angular/common';
import{ FormsModule }from'@angular/forms';import{ FriendModule }from'./friend/friend.module';import{ MessageListComponent }from'./message/list.component';
import{ MessageDetailComponent }from'./message/detail.component';
import{ MessageFormComponent }from'./message/form.component';
import{ MessageService }from'./todo.service';@NgModule({imports: [CommonModule, FormsModule, FriendModule ],exports: [MessageListComponent],declarations: [MessageListComponent, MessageDetailComponent, MessageFormComponent],providers: [MessageService]
})
exportclassMessageModule{}

在上面的模块定义中,我们又引入了一个 FriendModule ,因为好友的功能在另一个模块里,我们不需要重新实现,而只是引入他既可以。我们也可以只引入好友模块里面的某一个组件,也可以只引入服务。

在MessageModule中,在 exports: [MessageListComponent] 中导出了MessageListComponent,这样,别的模块可以使用这个组件,来显示消息列表。

在应用的根模块中,除了上面的这些’imports’,’providers’这些定义以外,还有一个 bootstrap: [AppComponent] ,表示这个应用一开始会加载这个组件到index页面中。

在Angular2中,提供了很多模块,例如上面的 FormsModuleCommonModule , 还有Router等。他们都是一个个模块,也算是库,可以单独引入使用,也可以只引入需要的部分。

组件和指令

Angular2的组件是一个可重用的单元,包含模版、样式,还有数据、事件等交互逻辑。

下面之前文章中TodoList应用中的一个组件:

import{ Component }from'@angular/core';import{ Todo }from'../todo';
import{ TodoService }from'../todo.service';@Component({selector: 'todo-list',templateUrl: 'app/todo/list/list.component.html',styleUrls: ['app/todo//list/list.component.css']
})
exportclassTodoListComponent{newTodo: Todo = newTodo();
constructor(private todoService: TodoService) { }addTodo() {
this.todoService.addTodo(this.newTodo);
this.newTodo =newTodo();}get todos() {
returnthis.todoService.getAllTodos();}
}

Angular2的组件通过一个@Component的Decorator(装饰器)定义一个组件TodoListComponent,组件中有2个方法,一个用于初始化任务列表数据,一个用于相应页面上的新建任务的事件。

在@Component中,定义了这个组件使用的模板、样式,和在它的父组件中所在的位置,也就是html标签 <todo-list>

在Angular2里,Directive(指令)跟组件类似,工作原理也跟上面类似。它跟组件一样,也是定义一种可重用的结构,添加用户交互。实际上,在Angular2中,Component继承自Directive接口,并提供了模板相关的属性和功能。

虽然组件和指令区别不大,但是,因为它在Angular2里面非常重要,而且是我们开发应用的基本单位,所以它被独立出来,并被放在Angular2框架的核心位置。

有关组件,需要说明的是,在一个Angular2的应用中,组件是一个属性的结构,就好像html的DOM树一样,每个Angular2应用都有一个根组件,然后它会有一个个的子组件。在我们之前的一篇文章《Angular2入门教程-2》中我们在设计系统的时候,就是从设计组件开始,得到的是一个组件树:

每个组件(除了根组件)都会有一个父组件,每个组件定义中的 selector 的值,对应父组件中的一个html标签。

元数据

元数据就是在定义模块、组件、服务的时候,Decorator方法里面的参数内容,例如一个AppComponent的元数据,就是 @Component 里面的参数,如下:

{selector: 'root-app',templateUrl: 'app/app.component.html',styleUrls: ['app/app.component.css']
}

在Angular2中,Decorator被大量使用,当我们定义模板、组件、服务、指令时,都是使用Decorator来定义。顾名思义,Decorator(装饰器)就是在一个类上面添加一些额外的属性或方法。

举个例子,上面的根组件AppComponent,在定义它的时候,通过 @Component 才能把它定义成一个Angular的组件。然后我们在这个元数据里面,设置了这个组件对应的selector,模板和样式。这样Angular框架在解析这个类的时候,就会按照组件的规则去解析并初始化。当在一个页面里面遇到这个selector设置的标签(如这个例子中的 )时,就会初始化这个组件,渲染模板生成html显示到对应的标签里面,并应用样式。

服务

在Angular2中,服务是一个很宽泛的定义,任何的类都可以被定义成服务,这个类中可以包含一些业务方法,可以包含环境配置变量。Angular2也没有对服务的定义做任何的规则限制。下面就是一个最简单的服务:

exportclassSomeService{someConfig: {foo: 'bar'}getConfig() { returnsomeConfig; }handle(msg: any) { console.log(msg); }
}

我们只需要定义一个class,并把它export就可以。但是,一般我们都是结合依赖注入来使用服务。

依赖注入

从Angular1的版本开始,依赖注入就是一个很核心的概念,在版本2中,主要是用于管理service实例的注入。在上面讲的service中,我们创建了一个SomeService,在传统的用法中,我们都是在需要用他的地方手动创建一个这个类的实例,然后调用他的相应方法或属性,例如:

letmyService =newSomeService();
myService.handle('the message');

但是,当我们的系统中有很多service类,甚至这些service类相互之间又需要引用的时候,我们就没有办法都通过手动创建的方式来获取service实例。更重要的是,这对于系统的解耦非常不便,不同的服务之间直接创建和引用,会让系统变得非常难以维护。

Angular给我们提供了一个非常好的解决方案,它借用了java等语言中某些容器库的概念,将所有service实例的创建都由容器来完成,当一个service需要引用另一个service的时候,不是自己创建另一个service的实例,而是从容器中获取那个service的实例。

要使用依赖注入的功能,首先我们的service必须由一个装饰器 @Injectable 来定义:

@Injectable()
exportclassSomeService{
// 跟之前一样,省略...
}

然后,在Component中需要加一个providers,也就是服务的创建者:

@Component({selector: 'some-list',templateUrl: 'some.component.html',providers: [ SomeService ]
})
exportclassSomeComponent{
constructor(private theService: SomeService) { }
// 省略其他方法。
},

这样这个服务就可以在SomeComponent中自动注入了。它的构造函数中有一个参数theService,类型是SomeService,Angular在创建这个Component的时候,就会从容器里面查找SomeService类的实例,如果有就用这个实例去初始化SomeComponent对象;如果没有就先新建一个,再初始化。这个过程,就是Angular的依赖注入。

有关依赖注入,需要注意的一点就是依赖注入的作用范围。Angular2的依赖注入是一个树形的结构,就好像组件树一样。在上面的例子中,我们在 SomeComponentproviders 里面设置了 SomeService ,也就是说,在SomeComponent这个节点,以及它所有的子节点的组件上,SomeService类的实例是共用的,它们都共享一个实例。但是,在这个SomeComponent的父组件里,它如果也想注入SomeService来使用的话,就没有办法从容器中获得,除非在它的父组件中的providers中也添加了这个服务。

在我们之前教程《Angular2入门教程-2》的TodoList应用实例中,我们把todo应用相关的类都添加到一个模块里,内容如下:

import{ NgModule }from'@angular/core';
import{ CommonModule }from'@angular/common';
import{ FormsModule }from'@angular/forms';import{ TodoListComponent }from'./list/list.component';
import{ TodoDetailComponent }from'./detail/detail.component';
import{ TodoItemComponent }from'./item/item.component';
import{ TodoService }from'./todo.service';@NgModule({imports: [CommonModule, FormsModule ],declarations: [TodoListComponent, TodoDetailComponent, TodoItemComponent],providers: [TodoService]
})
exportclassTodoModule{}

我们在这个模块的定义中定义了 providers: [TodoService] ,这样,这个模块的几个Component都可以共用这个TodoService的实例。

数据绑定

在JQuery或者更早的时代,当我们需要更新页面的内容的时候,我们一般都需要自己获得页面的DOM,然后,设置他的值。当页面上的内容需要更新到js端的时候,又需要设置一些事件,如onclick, onblur等,然后在响应事件里面再从页面获得这个值。这不仅需要些很多代码、浪费时间,还非常容易出错。终于,Angular把我们从这些枯燥的工作中解放出来,提供了数据绑定的功能。

在Angular1.x的版本中,数据绑定是通过轮询实现的。在Angular1里,所有需要绑定的数据都会在$scope中,Angular1.x有一个轮训机制,每隔一段时间就检查所有绑定的变量,检查他们现在的值跟上次检查的值是否一致,如果不一致,就触发相应的方法更新页面的内容。这虽然给我们开发带来了便利,但是如果有太多的变量需要监听,就会造成很大的性能问题。

在Angular2里面,绑定的数据的监听是通过zone.js实现。通俗来讲,zone给所有有可能更新数据的方法加了一个补丁,就像AOP,或者说代理模式。每当这些更新数据的方法被调用的时候,就会触发另一个方法,告诉Angular有数据修改,Angular再去判断变量是否修改,如果有修改,就更新DOM。

而且,Angular2的数据更新检测是在每个组件上有一个检测器。这样,就算应用中有再多绑定的变量,当有一个数据修改的事件以后,也只是对应的那个组件的检测器被触发,来检查它以及它所有的子组件的数据修改。

这两方面结合,就使得Angular2应用的性能能够有很大的提升。

说了那么多原理,我们再来看看Angular2是数据绑定的几种方式,结合下面的代码看看每种方式的用途。这个模板中包括一个输入框用于新建,包含一个列表显示,以及一个子组件:

<headerclass="header">
<inputclass="new-hero"placeholder="输入名字"[(ngModel)]="newHero.name"(keyup.enter)="addHero()">
</header>
<ul>
<li>{{hero.name}}</li>
<hero-detail[hero]="selectedHero"></hero-detail>
<li(click)="selectHero(hero)"></li>
</ul>

我们看看这个模板里面包含的4种数据绑定的方式:

  • 插值表达式
    这种方式是将组件中的数据hero.name显示到页面上那个
  • 标签里。
  • [user] 属性绑定

    这种方式用于将当前组件中的变量传递到子组件,也就是从list组件中,对于每一个hero,将它传递到子组件HeroDetailComponent中。在子组件中,就需要这样来获取:

    @Input() todo: Todo;
    
  • (click),(keyup.enter)

    这就是事件绑定,将页面上的DOM事件绑定到组件中的某个方法上。也就是当用户点击(click),或者敲回车键后弹起(keyup.enter)时,调用组件中的某个方法。

  • [(ngModel)]
    这种是双向的数据绑定,上面3个都是单向的。双向绑定就是用户在页面上修改这个输入框的值时,这个值就会直接反馈到组件中,同样,如果在组件中通过某种方式修改了这个值,页面上的输入框中,也会显示最新的值。

对于上面的 []() 两种类型的绑定,可以理解成’输入’和’输出’。 [] 相当于一个组件的输入,一般这个输入从它的父组件获得;() 相当于组件的输出。上面的例子是用事件绑定,将数据”输出”到组件里。实际上,我们还可以用一种 EventEmitter 把数据”输出”到父组件。

下面的图直观的描述了上面4种数据绑定方式的作用方式:(图片来自官网,其中’[property] = “value”‘这个表述的似乎不太正确???):

它们之间的关系

为了描述这几个功能之间的关系,先看看下面这张图(图片摘自官网):

这张图就比较清楚的说明了组件、服务、模板、Directive(指令)、数据绑定和依赖注入的相互关系。结合这张图和上面说的开发一个Angular2的应用的基本过程,这样就更容易理解了。

下面,我们来看一下Angular应用的工作流程。

  1. 我们定义一个根模块和一个根组件,然后在main.ts里面用这个根模块启动应用。
  2. 根组件里面的一个html标签如果匹配了某一个组件的’selector’,这个组件就会被加载在这个标签里面。这样,整个应用就是一个组件树,
  3. 我们定义的Component信息,也就是类和Metadata(元数据),Angular会根据这个组件定义将组件中定义的模板显示到selector对应的标签上,将样式应用到模板页面上。组件和模板之间又通过数据绑定联系起来,组件中的变量通过数据绑定展示到模板上,模板又通过事件绑定,对应到组件里的方法上。Directive的工作原理也跟上面类似。
  4. 最后,我们定义的service被Angular的Injector保存在一个树形结构的容器里,在某个组件中当我们需要使用这个service时,就可以在构造函数中直接获得这个service的实例,而不用手动创建。这样,多个组件,或者模块都可以共用一个service的实例。所以,service除了提供业务方法,也能提供共享数据、数据传输等功能。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. NG-ZORRO-MOBILE - Ant Design Mobile Of Angular

    NG-ZORRO-MOBILE - Ant Design Mobile Of Angular 搜索组件... English 0.12.x 组件 Ant Design Mobile of Angular快速上手在Ionic中使用脚手架定制主题更新日志贡献指南 Components Layout FlexFlex布局WhiteSpace上下留白WingBlank两翼留白 Navigation Drawer抽屉Menu菜单…...

    2024/3/23 19:28:13
  2. angular组件图标无法显示的问题

    1、问题&#xff1a;使用angular构建项目&#xff0c;部署后图标无法正常显示&#xff08;内外网影响不同&#xff09; 2、影响&#xff1a; 1&#xff09;目录下&#xff1a; 2&#xff09;目录下&#xff1a; 3、解决&#xff1a;下载font放在自己本地文件中&#xff0c;在cs…...

    2024/3/23 19:28:12
  3. angular+NG-ZORRO如何实现树的操作(展示、选中传输给后台)

    前言&#xff1a;今天做一个树形结构的展示&#xff0c;从后台取来数据进行展示&#xff0c;再从前台选取传给后台的一个操作。应用的技术是angular、NG-ZORRO 效果如下图&#xff1a;(两个量表类型) 后台需要提供的字段有tenantId、normalFormIds、scaleIds 分别是当前选中的…...

    2024/3/23 19:38:46
  4. html树形菜单展开与收起,javascript – AngularJS中的子菜单(展开/折叠树)

    您可以使用以下代码在AngularJS上创建展开/折叠子菜单.我为你附上了JSFiddle的例子.{{item.name}}---{{subItem.name}}你的JS控制器&#xff1a;function MyCtrl($scope) {$scope.showChilds function(item){item.active !item.active;};$scope.items [{name: "Item1&q…...

    2024/3/23 19:38:44
  5. html递归目录树,Angular directive递归实现目录树结构代码实例

    整理文档&#xff0c;搜刮出一个Angular directive递归实现目录树结构代码实例代码&#xff0c;稍微整理精简一下做下分享。效果图&#xff1a;重点&#xff1a;1. 整棵目录树的实现&#xff0c;通过嵌套完成&#xff0c;主要在于对treeItem.html的递归使用{{item.name}}2. 点击…...

    2024/3/23 19:38:46
  6. angular tree-root自定义显示模板和设置默认选中项并高亮显示

    在树形控件中&#xff0c;默认每一个节点只是显示它的名字&#xff0c;如果还想显示其他的&#xff0c;就需要自定义显示模板&#xff0c;一开始采用的ng-zorro的控件nz-tree&#xff0c;但是没有可以自定义显示模板的属性&#xff0c;然后一顿找&#xff0c;发现了tree-root&a…...

    2024/3/23 19:38:42
  7. Angular学习笔记85:NG-ZORRO 树状表格惰性加载数据的实现

    在使用 NG-ZORRO的树状表格时&#xff0c;官方提供的 demo是一次性加载全部数据的。在项目中&#xff0c;数据比较多的情况下&#xff0c;一次性获取全部数据&#xff0c;是非常影响用户体验的。所以实现树状表格惰性加载数据。 创建一个组件 $ ng g c sluggishness-tree-tab…...

    2024/3/23 19:38:41
  8. angularjs——div+angularjs实现下拉树

    angularjs——divangularjs实现下拉树 1.效果图 2.前台代码 <ons-page ng-controller"checkPointController" ng-init"checkPointdata"><ons-toolbar class"hlxny-head" ng-class"{isIOS:isIOS}"><div class"l…...

    2024/3/23 19:38:43
  9. Angular24 树形菜单 ???

    待更新... 2018年5月21日15:17:47 参考博文01 参考博文02转载于:https://www.cnblogs.com/NeverCtrl-C/p/9067356.html...

    2024/3/27 23:27:23
  10. angular Ng-Zrro树形控件 异步加载

    这个读懂代码也挺简单的 html代码 <nz-tree [nzData]"nodes" nzAsyncData (nzClick)"nzEvent($event)" (nzExpandChange)"nzEvent($event)"> </nz-tree>nzExpandChange 是点击展开树节点图标触发事件 nzClick 就不用介绍了吧 点击…...

    2024/3/23 19:38:38
  11. Angular中input自动获取焦点采坑

    坑的样子 为了用户体验&#xff0c;我想着用户打开页面时输入用户名的框自动得焦&#xff0c;于是我就直接在input框中加了autofocus属性&#xff0c;结果是这样的&#xff1a; 代码虽然是写了&#xff0c;但是input还是没有聚焦&#xff0c;而且控制台还报了一句话 大概意思是…...

    2024/3/23 19:38:37
  12. js获取url上的数据;angularjs获取url上的参数

    <script> var id location.search.substring(1).split()[1] //获取url上的数据 </script> angularjs获取url上的参数 https://localhost.8080/postedit?username"sukai"; $scope.username $location.search().username;...

    2024/3/27 23:39:11
  13. angularJS1 url中携带参数的获取

    index.html 从此界面跳转到a.html界面 <!doctype html> <html><head><meta charset"utf-8"><title>form demo</title><meta name"viewport" content"widthdevice-width, minimum-scale1.0, maximum-scale1.0…...

    2024/3/23 19:38:36
  14. Angular 去掉url中的#号,并解决页面刷新404问题

    1. 为什么要去除&#xff1f; Angular官方指出&#xff1a;如果没有足够使用hash风格&#xff08;#&#xff09;的理由&#xff0c;还是尽量使用HTML5模式的路由风格&#xff1b;如果配置了hash风格&#xff0c;在微信支付或是Angular的深路径依然会出404的问题&#xff1b;当你…...

    2024/3/23 19:38:35
  15. Angular2+去除url中的#

    1. 为什么要去除&#xff1f; Angular官方指出&#xff1a;如果没有足够使用hash风格&#xff08;#&#xff09;的理由&#xff0c;还是尽量使用HTML5模式的路由风格&#xff1b; 如果配置了hash风格&#xff0c;在微信支付或是Angular的深路径依然会出404的问题&#xff1b; …...

    2024/3/23 19:38:33
  16. angular——内置服务获取本机的信息

    之前我们用angular设置了一个定时器&#xff0c;今天我们就根据定时器进行一些练习。 使用内置服务获取以下信息&#xff1a; 1.获取屏幕高度 2.获取屏幕宽度 3.获取页面title 4.获取URL协议 5.获取URL主机 6.获取端口号 7.获取URL的hash部分 8.获取访问地址&#xff…...

    2024/3/23 19:38:33
  17. angular js获取$state.go里面url的参数

    wechatMain.js 定义路由&#xff0c;params用于存取跳转传递过来的参数 .state(wechat.official.message, {url: "/message",params:{"ids":null,"type":null},views: {"content_two": {templateUrl: base"/template/wechat/wec…...

    2024/3/23 19:38:31
  18. Angular中请求blob数据以及显示blob失败并提示 sanitizing unsafe URL value blob的解决办法

    Angular中请求blob数据的请求 Angular中的网络请求非常简单&#xff0c; 我们导入HttpClientModule后&#xff0c;在类构造函数中注入 HttpClient 后就可以使用其提供好的相关请求方法了&#xff0c;这里不再赘述了 constructor(private _httpClient: HttpClient,) {}我们先来…...

    2024/3/28 16:11:47
  19. angular4.0中路由传递参数、获取参数

    研究ng4的官网&#xff0c;终于找到了我想要的方法。我想要的结果是用‘&’拼接参数传送&#xff0c;这样阅读上是最好的。 否则很多‘/’的拼接&#xff0c;容易混淆参数和组件名称。 一般我们页面跳转传递参数都是这样的格式&#xff1a; http://angular.io/api?uid1…...

    2024/3/23 19:28:20
  20. Angular4 监听路由URL的变化

    Angular 4检测路由变化&#xff0c;可以使用router.events来监听&#xff1a; 支持的事件类型&#xff1a; NavigationStart&#xff1a;导航开始NavigationEnd&#xff1a;导航结束NavigationCancel&#xff1a;取消导航NavigationError&#xff1a;导航出错RoutesRecoginzed&…...

    2024/3/23 19:28:20

最新文章

  1. 超实用的Maven指南

    文章目录 实战记录&#x1f4dd;Maven 指令大全 &#x1f31f;找到没有被使用的jar&#xff08;analyze&#xff09;分析jar是被哪个maven引入&#xff08;tree&#xff09;&#x1f31f; dependencies&#xff08;Maven依赖&#xff09;build-resources&#xff08;资源导入&a…...

    2024/3/29 18:23:47
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【项目管理——时间管理】【自用笔记】

    1 项目时间管理&#xff08;进度管理&#xff09;概述 过程&#xff1a;&#xff08;2—6&#xff09;为规划过程组&#xff0c;7为监控过程组 题目定义&#xff1a;项目时间管理又称为进度管理&#xff0c;是指确保项目按时完成所需的过程。目标&#xff1a;时间管理的主要目标…...

    2024/3/29 10:04:43
  4. GET和POST方法的区别

    GET和POST的区别 在我们开发项目的时候常常会在Controller层使用到POST方法或者GET方法&#xff0c;犹豫到底将接口定义为GET方法还是POST方法&#xff1f;那这两者之间有什么区别呢&#xff1f; 看一下官方定义&#xff1a; GET 和 POST 是 HTTP 协议中最常用的两种请求方法…...

    2024/3/28 9:11:51
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/3/29 18:08:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/3/29 18:08:34
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/3/29 2:45:46
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/3/29 16:26:39
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/3/29 5:19:52
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/3/29 18:08:00
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/3/29 11:11:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/3/29 1:13:26
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/3/29 8:28:16
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/3/29 7:41:19
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/3/29 18:07:15
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/3/29 9:57:23
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/3/29 0:49:46
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/3/29 18:06:57
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/3/29 17:27:19
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/3/29 18:06:36
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/3/29 18:06:22
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/3/28 18:26:34
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/3/29 18:06:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/3/28 20:09:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57