解决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 EasyUI API 中文文档 - ValidateBox验证框
Oct 06 Javascript
js控制表单不能输入空格的小例子
Nov 20 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
Oct 28 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
使用D3.js构建实时图形的示例代码
Aug 28 Javascript
使用koa2创建web项目的方法步骤
Mar 12 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
微信小程序本地存储实现每日签到、连续签到功能
Oct 09 Javascript
使用Vue实现一个树组件的示例
Nov 06 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代码
2012/07/14 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
phpStorm2020 注册码
2020/09/17 PHP
html读出文本文件内容
2007/01/22 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python求离散序列导数的示例
2019/07/10 Python
Python 实现自动导入缺失的库
2019/10/29 Python
python实现电子词典
2020/03/03 Python
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
出纳岗位职责范本
2013/12/01 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
员工手册编写范本
2015/05/14 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫