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 相关文章推荐
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 Javascript
JavaScript之IE的fireEvent方法详细解析
Nov 20 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
javascript中全局对象的isNaN()方法使用介绍
Dec 19 Javascript
javascript创建createXmlHttpRequest对象示例代码
Feb 10 Javascript
用Move.js配合创建CSS3动画的入门指引
Jul 22 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
vue 中Virtual Dom被创建的方法
Apr 15 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 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/01/28 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
新手入门常用代码集锦
2007/01/11 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
django基于restframework的CBV封装详解
2019/08/08 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
企业后勤岗位职责
2014/02/28 职场文书
委托书样本
2014/04/02 职场文书
三年级小学生评语
2014/04/22 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
小学庆六一主持词
2015/06/30 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python