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与CSS复习(三)
Jun 29 Javascript
JS封装的自动创建表格的实现代码
Jun 15 Javascript
jQuery简单实现列表隐藏和显示效果示例
Sep 12 Javascript
AngularJS 单元测试(一)详解
Sep 21 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
React Native实现地址挑选器功能
Oct 24 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 Javascript
js中let能否完全替代IIFE
Jun 15 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
webpack介绍使用配置教程详解webpack介绍和使用
Jun 25 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
有趣的python小程序分享
2017/12/05 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
pandas的排序和排名的具体使用
2019/07/31 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
印尼旅游网站:via
2017/11/12 全球购物
益模软件Java笔试题
2012/03/27 面试题
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
一夜的工作教学反思
2014/02/08 职场文书
2014年教研室工作总结
2014/12/06 职场文书
退税申请报告怎么写
2015/05/18 职场文书
建筑工程催款函
2015/06/24 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers