vue 子组件修改data或调用操作


Posted in Javascript onAugust 07, 2020

<子组件 ref='xxx'></子组件>

父组件:

this.refs.xxx.子组件定义的方法()

外部:

vm.$refs.xxx.子组件定义的方法()

注意:子组件添加 ref 属性,父组件才可以通过 refs 获取.

补充知识:vue更新data值,如何重新渲染组件?

一:先介绍一下Vue.set()方法

注:如果从服务端返回的数据量较少,或者只有几个字段,可以用vue的set方法,如果数据量较大,请直接看第二种情况。

官网API是这样介绍的:

Vue.set(target,key,value)

参数:

{Object | Array} target

{string | number} key

{any} value

返回值:设置完后的新值

用法:

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = ‘hi')

注意对象不能是 Vue 实例,或者 Vue 实例的根数据对象。

我举个简单的小例子,把这种用法介绍一下:

一:data中定义一个对象:

data() {
 return {
  person:{
  age:10,
  name:'李古拉雷',
  sex:1
  }
 }
}

二:从服务端发起请求返回新数据对象:

person:{
 age:20,
 name:'高圆圆',
 sex:0
}

这时需要把这个对象实时渲染到页面中去

三:用 Vue.set()方法更新数据

如下所示:

methods: {
 getPerson(){
  this.$http({
  method: "post",
  url:this.$$baseURL + "sys/getPerson",
 }).then(res => {
  Vue.set(this.person,0,{age:res.data.age,name:res.data.name,sex:res.data.sex})
/**
* 0 更新的是位置0上的数据
*
*/
});
}
}

这样从服务端返回的新数据就实时更新到组件上了。

下面说一下第二种情况:

这种情况就是数据量较大,字段较多的,使用Vue.set()方法就有点过分了,这时我们应该怎么做呢?

核心思想就是定义一个临时变量,因computed 是计算属性,这里面的值更细可以实时渲染组件更新页面。

一:我们在data中定义一个很大的临时对象

data() {
 return {
 myTempObj:{} // 这时一个很大的临时对象,字段特别多
 }
}

二:我们在计算属性中也定义一个很大的对象

这个对象是我们在页面中真正用到的对象

computed: {
 myObj: {
  get: function(){
  return this.myTempObj; // 在这里把临时对象的值通过计算属性赋值给页面中用到的对象
  }
 },
}

三:发起异步请求,从服务端返回数据

methods: {
 getBigObj(){
  this.$http({
  method: "post",
  url:this.$$baseURL + "sys/getBigObj",
 }).then(res => {
  this.myTempObj=res.bigObj ; // 在这里用临时变量接受服务端返回值
});
}
}

四:页面模板组件中使用方法

<div class="brand-list bybrand_list" v-for="(item, index) in myObj" :key="index">
 {{item.name}}
</div>

以上两种情况都可以解决从服务端取到的数据不能实时更新问题,根据具体情况选择使用!希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
jQuery动态增减行的实例代码解析(推荐)
Dec 05 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
AngularJS+Bootstrap3多级导航菜单的实现代码
Aug 16 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
node(koa2) web应用模块介绍详解
Mar 29 Javascript
微信小程序网络请求实现过程解析
Nov 06 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
Aug 07 #Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 #Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
Aug 07 #Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 #Javascript
javascript解析json格式的数据方法详解
Aug 07 #Javascript
Vue触发input选取文件点击事件操作
Aug 07 #Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 #Javascript
You might like
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
js实现select下拉框选择
2020/01/11 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
pycharm远程调试openstack代码
2017/11/21 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
python文件选择对话框的操作方法
2019/06/27 Python
python requests使用socks5的例子
2019/07/25 Python
python mysql断开重连的实现方法
2019/07/26 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
心理健康教育制度
2014/01/27 职场文书
档案室主任岗位职责
2014/02/12 职场文书
个人求职信范文
2014/05/24 职场文书
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS