网站地图    收藏   

主页 > 前端 > vue教程 >

解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)

来源:自学PHP网    时间:2020-10-27 10:25 作者:小飞侠 阅读:

[导读] 解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)...

今天带来解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)教程详解

一、在我们使用vue进行开发的过程中,可能会遇到一种情况:

当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去;

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 ,需要用vue内置的方法

二、Vue.set() 响应式新增与修改数据

此时我们需要知道Vue.set()需要哪些参数,官方API:https://cn.vuejs.org/v2/api/#Vue-set

调用方法:Vue.set( target, key, value ) 或者 this.$set(target, key, value);

target:要更改的数据源(可以是对象或者数组)

key:要更改的具体数据

value :重新赋的值,

调用:this.$set(target, key, value);

补充知识:vue Render scopedSlots

render 中 slot 的一般默认使用方式如下: this.$slots.default 对用 template的的使用没有name 。 想使用多个slot 的话。需要对slot命名唯一。

在render函数中动态使用多个slot,并且给slot传值

一、我的业务逻辑:

使用了三个组件,

组件A调用组件B,组件B调用组件C,组件C是自己封装的render渲染组件。

组件A希望将自己自定义的插槽插到C组件,C组件渲染出自定义的内容,并且将C组件的值传递给B组件和A组件,B组件是对C组件进行更大一层的封装

A组件调用B组件


     

A组件引用B组件,slot-scope接收从B组件中传出来solt的值,slot=“name”,是为插槽具名;

B组件中调用C组件的render函数


   
    
   
 
  

B组件span中 slot是动态的值,和A组件中的slot同一个值,才能接受来自A组件自定义的插槽,

field是来自于C组件中传递的值

C组件是render函数

h(
     "td",
     {
      style: { width: field.width + "px" },
      class: { borderRight },
      // 作用域插槽格式
      // { name: props => VNode | Array }
      scopedSlots: this.$scopedSlots.name,
      // 如果组件是其他组件的子组件,需为插槽指定名称
      slot: 'name'
     },
     this.$scopedSlots.name({
      field: field,
      rowData: rowData,
     })
    );

C组件往上传递的值就是 {field:'', rowData: ''} 的对象

以上这篇解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学php网。


以上就是关于解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论