vue中.sync修饰符与vue插槽

本文介绍了Vue组件间的通信,特别是如何使用.sync修饰符实现数据双向绑定,以及插槽的使用,包括默认插槽、具名插槽和作用域插槽的概念及使用场景。
摘要由CSDN通过智能技术生成
sync修饰符

vue组件之间数据传递,组件之间的通信方式:
单向绑定
父组件通过 props 传入数据到子组件内部,但是子组件内部不要修改外部传入的 props
vue提供了一种事件机制通知父级更新,父级中使用子组件时,监听对应的事件绑定处理函数即可

虽然不推荐在组件内部修改 props ,但有时需要组件内部状态变化时去改变 props
我们可以通过子组件触发事件,父级监听事件来达到这个目的,不过过程会比较繁琐。

vue提供了一些操作来简化这个过程:

v-model
v-modelvue 提供的一个用于实现数据双向绑定的指令,
用来简化 props 到 datadata 到 props 的操作流程

不推荐使用v-model来传参,原因:

  • (1) 它隐藏了很多具体实现细节,会让我们在使用的时候,操作空间变小
  • (2) 出现错误的时候,不容易排查
  • (3) 同时只能处理一个prop,绑定不了多个prop

.sync修饰符
我们还可以通过另外一种方式来达到这个目的,那就是
vue2.3.0后,它被扩展为一个自动更新父组件属性的 v-on 监听器。
sync的功能:当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定
可以绑定多个属性。实现数据的双向绑定。

.pagination a{
   
    width: 50px;
    margin-left: 5px;
    display: inline-block;
    text-align: center;
    font-size: 14px;
    text-decoration: none;
    border: 1px solid lightgreen;
}
.pagination a.ago{
   
    width: 26px;
 }
.pagination a.active{
   
    background-color: lightskyblue;
    color: white;
}
<div id="app">
   <ul id="ulist">
      <li v-for="user of showUsers" :key="user.id">
          userusername}}
      </li>
   </ul>
   <!-- 单向数据绑定 -->
   <!-- <partpage :pages="totalpage" :page="curpage" @changepage="changepage"></partpage> -->    
   
   <!-- v-model双向数据绑定 -->
   <!-- <partpage :pages="totalpage" v-model="curpage"></partpage> -->
      
   <!-- 指令绑定加修饰符, 更新绑定的数据(可以实现双向数据绑定)-->
   <!-- 更新的是page,那么这里page后面要加.sync修饰符 ,
        如果pages也需要双向数据绑定,也加上.sync修饰符即可-->
    <partpage :pages="totalpage" :page.sync="curpage"></partpage>
    
    <!-- 测试.sync修饰符 -->
    <!-- <new-com :pagecode.async="curpage"></new-com> -->
</div>
    <script src="js/vue.js"></script>
    <script>
        Vue.component(
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值