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 相关文章推荐
js模仿hover的具体实现代码
Dec 30 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 Javascript
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
js实现拖拽与碰撞检测
Sep 18 Javascript
JavaScript控制台的更多功能
Apr 28 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
PHP Directory 函数的详解
2013/03/07 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
python开发之list操作实例分析
2016/02/22 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
单位委托书
2014/10/15 职场文书
保密工作整改报告
2014/11/06 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript