<span class="line"><span class="tag"><<span class="name">template</span>></span></span>
<span class="line"> <span class="tag"><<span class="name">a</span></span></span>
<span class="line"><span class="tag"> <span class="attr">:href</span>=<span class="string">"href"</span></span></span>
<span class="line"><span class="tag"> <span class="attr">:class</span>=<span class="string">"{active: isActive}"</span></span></span>
<span class="line"><span class="tag"> @<span class="attr">click</span>=<span class="string">"go"</span></span></span>
<span class="line"><span class="tag"> ></span></span>
<span class="line"> <span class="tag"><<span class="name">slot</span>></span><span class="tag"></<span class="name">slot</span>></span></span>
<span class="line"> <span class="tag"></<span class="name">a</span>></span></span>
<span class="line"><span class="tag"></<span class="name">template</span>></span></span>
<span class="line"><span class="tag"><<span class="name">script</span>></span></span>
<span class="line"><span class="javascript"><span class="keyword">import</span> routes <span class="keyword">from</span> <span class="string">'@/routes'</span>;</span></span>
<span class="line"><span class="javascript"><span class="keyword">export</span> <span class="keyword">default</span> {</span></span>
<span class="line"><span class="javascript"> name: <span class="string">'router-link'</span>,</span></span>
<span class="line"><span class="undefined"> props: {</span></span>
<span class="line"><span class="undefined"> href: {</span></span>
<span class="line"><span class="javascript"> type: <span class="built_in">String</span>,</span></span>
<span class="line"><span class="javascript"> required: <span class="literal">true</span>,</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined"> computed: {</span></span>
<span class="line"><span class="undefined"> isActive() {</span></span>
<span class="line"><span class="javascript"> <span class="keyword">return</span> <span class="keyword">this</span>.href === <span class="keyword">this</span>.$root.currentRoute;</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined"> methods: {</span></span>
<span class="line"><span class="undefined"> go(e) {</span></span>
<span class="line"><span class="javascript"> <span class="comment">// 阻止默认跳转事件</span></span></span>
<span class="line"><span class="undefined"> e.preventDefault();</span></span>
<span class="line"><span class="javascript"> <span class="comment">// 修改父级当前路由值</span></span></span>
<span class="line"><span class="javascript"> <span class="keyword">this</span>.$root.currentRoute = <span class="keyword">this</span>.href;</span></span>
<span class="line"><span class="javascript"> <span class="built_in">window</span>.history.pushState(</span></span>
<span class="line"><span class="javascript"> <span class="literal">null</span>,</span></span>
<span class="line"><span class="javascript"> routes[<span class="keyword">this</span>.href],</span></span>
<span class="line"><span class="javascript"> <span class="keyword">this</span>.href,</span></span>
<span class="line"><span class="undefined"> );</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined"> },</span></span>
<span class="line"><span class="undefined">};</span></span>
<span class="line"><span class="tag"></<span class="name">script</span>></span></span>