vue props 单项数据流实例分享


Posted in Javascript onFebruary 16, 2020

vue props 单项数据流实例分享

父组件传递动态值showStoreList,子组件通过props接收,但是如果在子组件中直接使用并修改这个值会报错;

因为父级的更新会传递给子组件,但是反过来则不行;

这种情况下,可以使用computed或watch来获取props中的值

vue props 单项数据流实例分享

以上实例不难,下面由三水点靠木小编整理的补充内容:

Vue2.x通过props传递数据是单向的了,也就是父组件数据变化时会传递给子组件,但是反过来不行。

业务中会经常遇到两种需要改变prop的情况,

一种是父组件传递初始值进来,子组件将它作为初始值保存起来,在自己的作用域下可以随意使用和修改。这种情况可以在组件data内再声明一个数据,引用父组件的prop,示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="./vue.js"></script>
</head>
<body>
  <div id="app">
    <my-component :init-count="1"></my-component>
  </div>
  <script>
    Vue.component('my-component',{
      props:['init-count'],
      template:'<div>{{count}}</div>',
      data:function(){
        return {
          count:this.initCount
        }
      }
    })
    new Vue({
      el:'#app',
    })
  </script>
</body>
</html>

组件中声明了数据count,它在组件初始化时会获取来自父组件的initCount,之后就与之无关了,只用维护count,这样就可以避免直接操作initCount。

另一种情况就是prop作为需要被转变的原始值传入。这种情况用计算属性就可以了,示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="./vue.js"></script>
</head>
<body>
  <div id="app">
    <mynew-component :width="100"></mynew-component>
  </div>
  <script>
    Vue.component('mynew-component',{
      props:['width'],
      template:'<div :style="style">组件内容</div>',
      computed:{
        style:function(){
          return {
            width:this.width+'px',
            background:'lightgray',
            textAlign:'center'
          }
        }
      }
    })
    new Vue({
      el:'#app',
    })
  </script>
</body>
</html>

注意:

在JavaScript中对象和数组是引用类型,指向同一个内存空间,所以props是对象和数组时,在子组件内改变是会影响父组件的。

//如此解决引用传递

1:var newObject = jQuery.extend(true, {}, oldObject);

2:var obj={};

obj=JSON.parse(JSON.stringify(oldObject));

以上就是本次介绍地全部相关知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
javascript特殊用法示例介绍
Nov 29 Javascript
jQuery中next()方法用法实例
Jan 07 Javascript
JavaScript判断用户是否对表单进行了修改的方法
Mar 18 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
localStorage的黑科技-js和css缓存机制
Feb 06 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
JS实现的数组去除重复数据算法小结
Nov 17 Javascript
vue-cli项目代理proxyTable配置exclude的方法
Sep 20 Javascript
详解在React项目中安装并使用Less(用法总结)
Mar 18 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
Jul 29 Javascript
Openlayers学习之地图比例尺控件
Sep 28 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
Feb 16 #Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
Feb 16 #Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 #Javascript
封装一下vue中的axios示例代码详解
Feb 16 #Javascript
Vue.js的模板语法详解
Feb 16 #Javascript
Vue两个版本的区别和使用方法(更深层次了解)
Feb 16 #Javascript
vue数据响应式原理知识点总结
Feb 16 #Javascript
You might like
php小偷相关截取函数备忘
2010/11/28 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
php简单截取字符串代码示例
2016/10/19 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python time.strptime格式化实例详解
2021/02/03 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国床垫在线:Mattress Online
2016/12/07 全球购物
采购部主管岗位职责
2014/01/01 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
授权委托书
2015/01/28 职场文书
公司庆典主持词
2015/07/04 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android