美文网首页
作用域插槽

作用域插槽

作者: 流泪手心_521 | 来源:发表于2020-09-02 15:51 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
      .pagination {
          margin: 30px 0 10px 0;
      }
      .pagination span {
          margin-right: 5px;
          padding: 10px 20px;
          border: 1px solid #000;
      }
      .pagination span.current {
          background: rgba(0,0,255, .5);
      }
  </style>
</head>
<body>

  <div id="app">
      <ul>
          <li v-for="user of showUsers" :key="user.id">
              {{user.id}} - {{user.username}}
          </li>
      </ul>



      <hr>

      <kkb-pagination :page.sync="userPage" :page-size="userPageSize" :total="users.length">
          <template v-slot:title="data">
              <p>总数据:{{users.length}},页码:{{data.page}} / {{data.pages}}</p>
          </template>

          <template>
              <p>开课吧</p>
          </template>
      </kkb-pagination>
  </div>

  <script src="./js/vue.js"></script>
  <script>

      Vue.component('kkb-pagination', {
          props: {
              total: {
                  type: Number,
                  default: 0
              },
              pageSize: {
                  type: Number,
                  default: 2
              },
              page: {
                  type: Number,
                  default: 1
              },
              message: {
                  type: String,
                  default: ''
              }
          },
          data() {
              return {
                  pages: Math.ceil( this.total / this.pageSize )
              }
          },
          template: `
              <div class="pagination">
                  <slot name="title" :pages="pages" :page="page"></slot>
                  <span
                      v-for="p of pages" :key="p"
                      :class="{current: p === page}"
                      @click="changePage(p)"
                  >{{p}}</span>
                  <slot></slot>
              </div>
          `,
          methods: {
              changePage(p) {
                  this.$emit('update:page', p);
              }
          }
      });

      new Vue({
          el: '#app',
          data: {
              users: [

                  {id: 1, username: 'zMouse', gender: '男'},
                  {id: 2, username: 'mt', gender: '男'},
                  {id: 3, username: 'haizi', gender: '男'},
                  {id: 4, username: 'liwei', gender: '男'},
                  {id: 5, username: 'zhangsan', gender: '男'},
                  {id: 6, username: 'lisi', gender: '男'},
                  {id: 7, username: 'wangwu', gender: '男'}

              ],
              userPage: 1,
              userPageSize: 2
          },
          computed: {
              showUsers() {
                  let start = (this.userPage - 1) * this.userPageSize;
                  let end = start + this.userPageSize;
                  return this.users.filter( (user, index) => index >= start && index < end );
              }
          }
      })

  </script>

</body>
</html>

相关文章

  • 2.插槽

    匿名插槽 具名插槽 作用域插槽

  • vue----slot插槽

    插槽分类 匿名插槽 具名插槽 作用域插槽

  • jsx中插槽的写法

    作用域插槽 scopedSlots: (2.6.0+) 一个暴露传入的作用域插槽的对象。也以函数形式暴露普通插槽。...

  • vue3中的插槽

    插槽 默认插槽 具名插槽,v-slot可以简写为# 动态插槽 #[dynamicSlotName] 作用域插槽(...

  • Vue中 的作用域插槽

    逻辑:父组件调用子组件的时候,给子组件传了一个插槽,这个插槽叫做作用域插槽,作用域插槽必须是template开头和...

  • Vue-使用插槽

    二。具名卡槽 作用域插槽:插槽循环时使用

  • 2019-02-15 vue组件基础篇5

    作用域插槽续此例的用意主要是介绍作用域插槽的用法1.允许组件自定义应该如何渲染列表每一项。2.作用域插槽的使用场景...

  • vue中slot插槽的使用

    插槽的种类:1、默认插槽、具名插槽、作用域插槽、解构插槽、动态插槽几种。转原文:https://www.jians...

  • 18、Vue3 作用域插槽

    作用域插槽:让插槽内容能够访问子组件中,vue2中作用域插槽使用slot-scope,vue3中使用v-slot ...

  • 插槽

    默认插槽: 具名插槽:slot name='footer' 作用域插槽:v-slot===slot-scope 默...

网友评论

      本文标题:作用域插槽

      本文链接:https://www.haomeiwen.com/subject/evnssktx.html