解决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打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
禁用JavaScript控制台调试的方法
Mar 07 Javascript
jQuery实现下滑菜单导航效果代码
Aug 25 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
Sep 06 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
Javascript基础_标记文字的实现方法
Jun 14 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
Jul 26 Javascript
JS实现点餐自动选择框(案例分析)
Dec 10 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
WordPress自定义时间显示格式
2015/03/27 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
js实现验证码干扰(静态)
2021/02/22 Javascript
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
python代码编写计算器小程序
2020/03/30 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python__name__原理及用法详解
2019/11/02 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
英文版区域经理求职信
2013/10/23 职场文书
自考自我鉴定范文
2013/10/30 职场文书
施工班组长岗位职责
2014/01/05 职场文书
2014年党务工作总结
2014/11/25 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python