Vue路由

1.5 Vue路由
1.5.1 router-link标签的使用。

<router-link to="写routers中定义的组件名称"></router-link> 是Vue-router.js中的组件

类似于a标签 to就相当于href

1.5.2 $mount代替el:""
 // 将当前 vue 实例挂载到 app dom 上,代替了el:"#app"
let app = new Vue({
        router,
      }).$mount("#app");
    </script>

注意:

1、要与路由出口配合使用,的作用是为匹配到的组件占据位置,匹配的组件的dom结构会在标签的位置展现。

2、要与

const router = new VueRouter({
routes:[
          { path: "/随机定义(这里定义什么<router-link to=""></router-link>中的to中就些什么)", component: 要写创建的组件名称。 },
        ],
}
1.5.3 插槽
1.5.3. 1插槽的基本使用
插槽,通过<slot></slot>标签来实现直接在组件内写内容,
可以写常量、变量
 <div id="app">
     用了实例里面变量title
    <list-item>{{title}}</list-item>
    <list-item1>aaaaaa</list-item1>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let listItem = {
      template: `
        <li><slot>列表项</slot></li>
      `
    }
    let listItem1 = {
      template: `
              <div>
                <p></p>
                <p><slot></slot></p>
              </div>
      `
    }
    let app = new Vue({
      el: '#app',
      data: {
        title: 'abc'
      },
      components: {
        'list-item': listItem,
        'list-item1': listItem1
      }
    })

这样的方法每一个slot的值都会是一样的接下来解决这个问题。

通过给slot设置name值来分别设置值

1.5.3.2 插槽通过name值来区别赋值
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
</head>

<body>
  <div id="app">
    <home>
      v-slot来指定name名
      <template v-slot:header>aaaa</template>
      <template v-slot:main>bbbb</template>
      <template v-slot:footer>cccc</template>
    </home>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script>
    let home = {
      template: `
      <div class="container">
        <header>
          //slot可以加一个name值来区别赋值
         <slot name="header"></slot>
        </header>
        <main>
          <!-- 我们希望把主要内容放这里 -->
          <slot name="main"></slot>
        </main>
        <footer>
          <!-- 我们希望把页脚放这里 -->
          <slot name="footer"></slot>
        </footer>
      </div>
      `
    }
    let app = new Vue({
      el: '#app',
      data: {},
      components: {
        'home': home
      }
    })
  </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值