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


Posted in Javascript onOctober 27, 2020

一、在我们使用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的<slot>的使用没有name 。 想使用多个slot 的话。需要对slot命名唯一。

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

一、我的业务逻辑:

使用了三个组件,

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

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

A组件调用B组件

<index-grid>
     <div
      slot="name"
      slot-scope="field"
      class="check-link"
      @click="rowLinkClick"
     >
      <span>{{ field.field.rowData.name }}</span>
     </div>
</index-grid>

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

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

<sub-grid ref="indexGridSub">
   <span
    v-for="(item, index) in fields"
    :key="index"
    slot="name"
    slot-scope="field"
   >
    <slot name="name" :field="field"></slot>
   </span>
 
  </sub-grid>

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

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

C组件是render函数

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

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

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

Javascript 相关文章推荐
jQuery boxy弹出层插件中文演示及使用讲解
Feb 24 Javascript
动感效果的TAB选项卡jquery 插件
Jul 09 Javascript
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
jquery zTree异步加载简单实例分享
Feb 05 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
Dec 01 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
node.js基于mongodb的搜索分页示例
Jan 22 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 Javascript
js实现自定义滚动条的示例
Oct 27 #Javascript
vue移动端下拉刷新和上滑加载
Oct 27 #Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 #Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 #Javascript
js实现简易拖拽的示例
Oct 26 #Javascript
js实现限定范围拖拽的示例
Oct 26 #Javascript
js实现磁性吸附的示例
Oct 26 #Javascript
You might like
php不用正则采集速度探究总结
2008/03/24 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
php cookie 详解使用实例
2016/11/03 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
浅谈js闭包理解
2019/03/28 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python实现Restful API的例子
2019/08/31 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
美国现代家具购物网站:LexMod
2019/01/09 全球购物
往来会计岗位职责
2013/12/19 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
消防先进事迹材料
2014/02/10 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
庆祝国庆节标语
2014/10/09 职场文书
运动会加油稿
2015/07/22 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
导游词之江西赣州
2019/10/15 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python