首页 > 其他分享 >Angular | standalone Component (一)

Angular | standalone Component (一)

时间:2023-12-26 15:24:04浏览次数:29  
标签:forRoot standalone RouterModule Component home 组件 import Angular

指导链接:angular-Standalone-guide


1.概述:standalone 时在angular 14版本引入的特性,作用是可以让组件、指令和管道独立。以后就可以独立的直接被引入其他组件,而不依赖 ngmodule 来引入,也可以在路由中实现组件的懒加载。

1.1定义一个standalone组件:

//footComponent
import {Component} from '@angular/core';
@Component({
    standalone: true,
    selector: 'app-footer',
    template: '<footer class="dark:bg-gray-800>Footer</footer>"',
})

export class FooterComponent{}

1.2可以被其他组件直接引入:

import {Component} from '@angular/core';
import {FooterComponent} from '@component/footer/foot.component';

@Componet({
    selector: 'app-home',
    standalone: true,
    template: '<app-footer></app-footer>'
})

export class HomeComponent{}

1.3可以在路由中懒加载

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { CustomPreloadingStrategy } from '@views/basic-syntax/router/customPreloadingStrategy';//预加载策略

const routes: Routes = [
  {
    path: 'home',
    // 之前想要实现懒加载 这里必须是一个NgModule 现在使用独立组件也可以 并且更加简洁
    loadComponent: () => import('@views/home/home.component').then((mod) => mod.HomeComponent),
  },
];

@NgModule({
  imports: [RouterModule.forRoot(routes, { preloadingStrategy: CustomPreloadingStrategy })],
  exports: [RouterModule],
})
export class AppRoutingModule {}

Q1: 引入独立组件的组件是否一定要设置独立属性?

​ 应该不需要

Q2:RouterModule.forRoot()的真实含义,以及 CustomPreloadingStrategy 的含义?

​ RouterModule对象为提供了两个静态的方法:forRoot()和forChild()来配置路由信息。

​ RouterModule.forRoot()方法用于在主模块中定义主要的路由信息. RouterModule.forChild()与 Router.forRoot()方法类似,但它只能应用在特性模块(子模块)中。即根模块中使用forRoot(),子模块中使用forChild()。

​ CustomPreloadingStrategy 是自定义的预加载策略。

Q3: loadComponent 和 loadChildren 的区别

//loadComponent 实现组件的懒加载
loadComponent: () => import('@views/home/home.component').then((mod) => mod.HomeComponent)

// loadChildren 实现模块的懒加载
loadChildren: () => import('src/app/testexecution/testexecution.module').then(m => m.TestExecutionModule),

标签:forRoot,standalone,RouterModule,Component,home,组件,import,Angular
From: https://www.cnblogs.com/rushintocloud/p/17928205.html

相关文章

  • Angular 17+ 高级教程 – Component 组件 の Query Elements
    前言Angular是MVVM框架。MVVM的宗旨是"不要直接操作DOM"。在 Component组件のTemplateBindingSyntax文章中,我们列举了一些常见的DOMManipulation。constelement=document.querySelector<HTMLElement>('.selector')!;element.textContent='value';......
  • 一个功能更强大,性能更高的树控件DevComponents.AdvTree.AdvTree(几种树形控件汇总)
    原文链接:https://www.cnblogs.com/a7373773/archive/2009/07/27/1532236.html一直在用DevComponents.DotNetBar2 控件近来探索Add()和AddRange()的性能问题。一样用极为不专业不科学的方法,比较DevComponents.AdvTree.AdvTree的Add()和AddRange()的性能 1private void butt......
  • Vite Components插件
    作用Components引于unplugin-vue-components,用于解决vue文件内无需手动引入组件,减少import的调用基本配置在vite配置文件中,作为插件使用import{defineConfig}from'vite'importComponentsfrom'unplugin-vue-components/vite'exportdefaultdefineConfig((mode)=......
  • Unity最新一键清理Prefab中所有MissingComponent
    因为老的API Properties.DeleteArrayElementAtIndex(propertyIndex);提示没权限修改,而unity提供了新的API GameObjectUtility.RemoveMonoBehavioursWithMissingScript(go);更方便移除丢失的组件,需要遍历物体下面所有子节点,否则无法移除子节点的丢失组件。于是重新整理了下......
  • PCA(Principal Components Analysis)主成分分析: 一维列向量坐标的变换是左乘变换矩阵
    总结:一维列向量的坐标变换是左乘变换矩阵;一维行向量的坐标系基元变换是右乘变换矩阵;坐标变换坐标变换定义:把一个向量(或一个点)从一个高维(或3D)坐标系,转换到另一个高维(或3D)坐标系去。举个栗子:东北天坐标系上的点A坐标为(1,2,3),通过坐标变换到北西天坐标系,点A......
  • components之infiniteScroll 注意事项
    先吐槽,看官方示例代码看的一头雾水使用方式:1.按官方文档来<InfiniteScroll  ref={ref}  style={{backgroundColor:'#ffffff'}}  hasMore={hasMore}  loadMore={loadMore}  data={list}  keyExtractor={(word)=>word}  renderItem={({item:......
  • 升级angular项目版本
    1.创建新项目-angular-cli的升级​ 1.1装载指定版本的(未安装angular-cli)npminstall-g@angualr/cli@version​ 1.2已经安装angular-cli版本npmuninstall-g@angular/cli//先卸载老版本npmcacheclean--force//清理缓存npminstall-g@angular/cli@versio......
  • 用DE10_NANO_SOC_FB生成dts的时候 提示Component alt_vip_itc_0 of class alt_vip_itc
    当使用DE10_NANO_SOC_FB工程产生dts时提示Componentalt_vip_itc_0ofclassalt_vip_itcisunknown: 如果此时生成了dtb,可以忽略这个提示。  如果没有生成,您可以先在Qsys中把这两个器件disable掉,然后top文件里面把相关的信号也注释掉,然后重新生成soc_system.......
  • Skeleton Design 理念在 Angular 应用开发中的具体应用一例
    SkeletonDesign这个概念,想必前端开发人员比较熟悉,而普通的App用户,可能甚至都没有听说过,但实际上我们每个人,每天几乎都会受益于这个设计理念。SkeletonDesign在一些国内技术社区的技术博客里,通常被称为骨架屏设计,是一种用户界面设计策略。骨架屏设计不是一种具体的基于某种编......
  • Angular Component 内 set 关键字的使用
    "set"关键字在Angular组件的TypeScript代码中通常用于创建和定义类的属性的setter方法。它是一种特殊的方法,负责设置类的私有成员变量的值。通过使用"set"关键字,我们可以在设置属性值时执行一些额外的逻辑,如输入验证、触发事件等。让我们通过一个简单的例子来说明"set"关键字的用......