Angular中路由的嵌套-父子路由
<h1>场景</h1><p>Angular介绍、安装Angular Cli、创建Angular项目入门教程:</p>
<p>https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105570017 </p>
<p>Angular新建组件以及组件之间的调用:</p>
<p>https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105694997</p>
<p>通过以上搭建起Angular项目。</p>
<p>Angular中的路由配置、路由重定向、默认选中路由:</p>
<p>https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106182994</p>
<p>注:</p>
<p>博客: <br>https://blog.csdn.net/badao_liumang_qizhi<br>关注公众号 <br>霸道的程序猿 <br>获取编程相关电子书、教程推送与免费下载。</p>
<h1>实现 </h1>
<p>如果要实现如下这种父子路由的嵌套 </p>
<p><img alt=""> </p>
<p>首先新建三个组件home组件、welcome组件、setting组件,其中home组件是父组件,welcome组件和setting组件是子组件
</p>
<div class="cnblogs_code">
<pre>ng g component components/home</pre>
</div>
<div class="cnblogs_code">
<pre>ng g component components/home/welcome</pre>
</div>
<div class="cnblogs_code">
<pre>ng g component components/home/setting</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1328191/202005/1328191-20200519224336569-1847784682.jpg" alt=""></p>
<p> </p>
<p> </p>
<p><img alt=""></p>
<p>然后在app-routing.module.ts中引入这三个组件并配置父子路由</p>
<div class="cnblogs_code">
<pre>import { HomeComponent } <span style="color: rgba(0, 0, 255, 1)">from</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./components/home/home.component</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
import { WelcomeComponent } </span><span style="color: rgba(0, 0, 255, 1)">from</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./components/home/welcome/welcome.component</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
import { SettingComponent } </span><span style="color: rgba(0, 0, 255, 1)">from</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./components/home/setting/setting.component</span><span style="color: rgba(128, 0, 0, 1)">'</span>;</pre>
</div>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">const</span> routes: Routes =<span style="color: rgba(0, 0, 0, 1)"> [
{
path:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">home</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,component:HomeComponent,
children:[
{path:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">welcome</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,component:WelcomeComponent},
{path:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">setting</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,component:SettingComponent},
{path:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">**</span><span style="color: rgba(128, 0, 0, 1)">'</span>,redirectTo:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">welcome</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
]
}
];</span></pre>
</div>
<p> </p>
<p>最后一个两个星号的路由配置是配置默认路由是欢迎组件的页面。 </p>
<p>然后在home页添加路由跳转 </p>
<div class="cnblogs_code">
<pre><div <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content</span><span style="color: rgba(128, 0, 0, 1)">"</span>>
<div <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">left</span><span style="color: rgba(128, 0, 0, 1)">"</span>>
<a =<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">[ '/home/welcome']</span><span style="color: rgba(128, 0, 0, 1)">"</span> routerLinkActive=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">active</span><span style="color: rgba(128, 0, 0, 1)">"</span>>欢迎首页</a>
<br>
<br>
<a =<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">[ '/home/setting']</span><span style="color: rgba(128, 0, 0, 1)">"</span> routerLinkActive=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">active</span><span style="color: rgba(128, 0, 0, 1)">"</span>>系统设置</a>
</div>
<div <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">right</span><span style="color: rgba(128, 0, 0, 1)">"</span>>
<router-outlet></router-outlet>
</div>
</div></pre>
</div>
<p>为了让子组件显示在父组件中所以添加<router-outlet></router-outlet></p>
<p>为了显示出左右布局,所以在home的scss中添加样式</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">.content{
width:</span><span style="color: rgba(128, 0, 128, 1)">100</span>%<span style="color: rgba(0, 0, 0, 1)">;
height:500px;
display:flex;
.left{
width:200px;
border</span>-<span style="color: rgba(0, 0, 0, 1)">right:1px solid #eee;
height:500px;
}
.right{
flex:1px;
}
}</span></pre>
</div>
<p> </p>
<p> </p>
<p>运行项目看效果 </p>
</div>
<div id="MySignature" role="contentinfo">
博客园:
https://www.cnblogs.com/badaoliumangqizhi/
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。<br><br>
来源:https://www.cnblogs.com/badaoliumangqizhi/p/12920158.html
頁:
[1]