Angular Material 个组件的自定义选择器名称
Custom Selector Names for Angular Material Components
我刚刚开始使用 angular 和 angular material,我不喜欢每个 angular-material 组件以 mat
开头的方式。例如:
<mat-sidenav-container>
<mat-sidenav>...</mat-sidenav>
<mat-sidenav-content>...</mat-sidenav-content>
</mat-sidenav-container>
有没有办法为这些组件提供自定义选择器名称?即,像这样:
<SidenavContainer>
<Sidenav>...</Sidenav>
<SidenavContent>...</SidenavContent>
</SidenavContainer>
如果是这样,我该怎么做?
<SidenavContainer>
是一个非常像 React 的组件。
欢迎来到Angular...
约定是不同的,随着时间的推移你会习惯它,但我们有前缀的原因是因为 Angular 和 React 解析组件非常不同。
React 可以导入 一个组件引用,如果你有两个同名的组件,你可以重命名导入。
import {SidenavContainer} from './src/SidenavContainer';
import {SidenavContainer as SidenavContainerOther} from '../other/src/SidenavContainer';
Angular 无法 重命名 选择器。它们在项目的 global space 中,并在编译时由 AOT 解析。
所以我们必须使用前缀来将我们的组件与其他人的组件隔离开来。因此,您将创建 <app-sidenav-container>
,这样它就不会与另一个库中的 <mat-sidenav-container>
发生冲突。
我刚刚开始使用 angular 和 angular material,我不喜欢每个 angular-material 组件以 mat
开头的方式。例如:
<mat-sidenav-container>
<mat-sidenav>...</mat-sidenav>
<mat-sidenav-content>...</mat-sidenav-content>
</mat-sidenav-container>
有没有办法为这些组件提供自定义选择器名称?即,像这样:
<SidenavContainer>
<Sidenav>...</Sidenav>
<SidenavContent>...</SidenavContent>
</SidenavContainer>
如果是这样,我该怎么做?
<SidenavContainer>
是一个非常像 React 的组件。
欢迎来到Angular...
约定是不同的,随着时间的推移你会习惯它,但我们有前缀的原因是因为 Angular 和 React 解析组件非常不同。
React 可以导入 一个组件引用,如果你有两个同名的组件,你可以重命名导入。
import {SidenavContainer} from './src/SidenavContainer';
import {SidenavContainer as SidenavContainerOther} from '../other/src/SidenavContainer';
Angular 无法 重命名 选择器。它们在项目的 global space 中,并在编译时由 AOT 解析。
所以我们必须使用前缀来将我们的组件与其他人的组件隔离开来。因此,您将创建 <app-sidenav-container>
,这样它就不会与另一个库中的 <mat-sidenav-container>
发生冲突。