老鼠大哥 發表於 2020-5-19 22:44:00

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>&nbsp;</p>
<p>&nbsp;</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>&nbsp;</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>&nbsp;</p>
<p>最后一个两个星号的路由配置是配置默认路由是欢迎组件的页面。 </p>
<p>然后在home页添加路由跳转 </p>
<div class="cnblogs_code">
<pre>&lt;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>&gt;

    &lt;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>&gt;

      &lt;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>&gt;欢迎首页&lt;/a&gt;

      &lt;br&gt;

      &lt;br&gt;
      &lt;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>&gt;系统设置&lt;/a&gt;

    &lt;/div&gt;

    &lt;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>&gt;

      &lt;router-outlet&gt;&lt;/router-outlet&gt;

    &lt;/div&gt;

&lt;/div&gt;</pre>
</div>
<p>为了让子组件显示在父组件中所以添加&lt;router-outlet&gt;&lt;/router-outlet&gt;</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>&nbsp;</p>
<p>&nbsp;</p>
<p>运行项目看效果&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    博客园:
https://www.cnblogs.com/badaoliumangqizhi/
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。<br><br>
来源:https://www.cnblogs.com/badaoliumangqizhi/p/12920158.html
頁: [1]
查看完整版本: Angular中路由的嵌套-父子路由