1、Vue 的渲染周期:

vue 如何实现响应式追踪。

      父子组件通信有很多方式,今天单独聊下props 的方式。我们通过查找官方文档很容发现,props传值有静态和动态两种传值方式。

当然props 还提供许多验证,使数据更加严谨。

在使用父子传值时,出现了, 按照文档说明,例如:

  1. <template>
  2. <div v-if="data">{{parentName}}
  3.  
  4. <input type="text" v-model="parentName" />
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. export default {
  10. props:{
  11. parentName:String
  12. },
  13. data(){
  14. return {
  15. data:this.parentName
  16. }
  17. },
  18.  
  19. beforeCreate(){
  20. console.log("child beforeCreate");
  21. },
  22. created(){
  23. console.log("child created"+this.parentName);
  24. },
  25. mounted(){
  26. console.log("child data Mounted"+this.parentName);
  27. },
  28. beforeMount(){
  29. console.log("beforeMount data"+this.parentName);
  30. },
  31. beforeUpdate(){
  32. console.log("beforeUpdate data"+this.parentName)
  33. }
  34.  
  35. }
  36. </script>
  37.  
  38. <style>
  39.  
  40. </style>

父组件引用:

  

  1. <template>
  2. <div> <child :parent-name="name"/>
  3. <input type="text" v-model="name" />
  4. </div>
  5. </template>
  6.  
  7. <script>
  8. import child from './child.vue'
  9. export default {
  10. components:{
  11. child
  12. },
  13. data(){
  14. return {
  15. name:"asda"
  16. }
  17. },
  18. beforeCreate(){
  19. console.log("parent beforeCreate")
  20. },
  21. created(){
  22. console.log("parent created")
  23.  
  24. },
  25. beforeMount(){
  26. console.log("parent beforeMount")
  27. },
  28. mounted(){
  29. console.log(" parent mounted")
  30. this.name="hahshdf"
  31. }
  32. }
  33. </script>
  34.  
  35. <style>
  36.  
  37. </style>

  突然想到,这个父子组件渲染的顺序如何,如上述代码,

  

如图所示,渲染顺序是从子组件先挂载后,父组件在挂载。这个渲染顺序可以决定我何时传值,比较。

从执行渲染顺序来说,给子组件的props 中赋值,应该在父组件挂载前,最好是在子组件创建前即 beforeCreate 方法后,赋值。 切不可在beforeCreate 赋值,会导致未定义错误。

如果在父组件挂载后,赋值会出现什么情况呢。

没错,和你猜想的很对,会触发子组件的更新事件,会导致局部在渲染。

看文档提示,一般的props 传值,可以作为data()方法的中return的初始值使用,在作为初始值使用时,切记

  1. data(){
  2. return {
  3. data:this.propsValue
  4. }
  5. }

  这个是从新返回一个新值,this.propsValue 改变不会再影响data 的值。

最后说一句,现在vue 是单向的数据流,即 改变父组件中的值,可以影响子组件的值,但是改变子组件的值,父组件的值不变。

Vue 父子组件传值 props的更多相关文章

  1. vue父子组件传值加例子

    例子:http://element-cn.eleme.io/#/zh-CN/component/form         上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...

  2. 关于Vue父子组件传值(复杂数据类型的值)的细节点

    vue 父子组件传值是很常见的,多数情况下都是父传递给子的值是基础数据类型,如string,number,boolean, 当父组件值被修改时,子组件能够实时的作出改变. 如果父子传值的类型是复杂数据 ...

  3. 一个故事讲懂vue父子组件传值

    作者:李佳明同学链接:https://www.jianshu.com/p/2272b6ca0f0c 一个故事讲懂vue父子组件传值 讲故事前先讲代码 父组件向子组件传值 父组件数据传递给子组件可以通过 ...

  4. vue 父子组件传值以及方法调用,平行组件之间传值以及方法调用大全

    vue项目经常需要组件间的传值以及方法调用,具体场景就不说了,都知道.基本上所有的传值都可以用vuex状态管理来实现,只要在组件内监听vuex就好. vue常用的传值方式以及方法有: 1. 父值传子( ...

  5. vue 父子组件传值,兄弟组件传值

    父子组件中的传值 父向子    v-bind props <!-- 组件使用v-bind传值 --> <router :msg="msg"></rou ...

  6. Vue父子组件传值以及父调子方法、子调父方法

    稍微总结了一下Vue中父子间传值以及相互调方法的问题,非常基础.希望可以帮到你!先来个最常用的,直接上代码: 1.父传值给子组件 父组件: <template> <div> & ...

  7. VUE父子组件传值问题

    一.父组件向子组件传递数据 组件实例的作用域是孤立的.这意味着不能(也不应该)在子组件的模板内直接引用父组件的数据.要让子组件使用父组件的数据,我们需要通过子组件的props选项. 1.静态props ...

  8. vue父子组件传值

    1.父组件向子组件传值 例如app.vue是父组件,v-header.vue是子组件,实现app向v-header传值父组件需要自定义自己的title值, 子组件v-header内容 <temp ...

  9. Vue父子组件传值之——访问根组件$root、$parent、$children和$refs

    Vue组件传值除了prop和$emit,我们还可以直接获取组件对象: 根组件: $root // 单一对象 表示当前组件树的根 Vue 实例,即new Vue({...根组件内容}).如果当前实例没有 ...

随机推荐

  1. javascript刷新页面的集中办法

    1. history.go(0) 2. location.reload() 3. location=location 4. location.assign(location) 5. document. ...

  2. sqlserver2008数据库文件降级为sqlserver2005文件

    直接分离附加是不行的. 操作步骤如下: 在sqlserver2008企业管理器中 右键xx数据库->任务->生成脚本 弹出框中勾选 为所选数据库中的所有对象编写脚本 下一步  修改如下图片 ...

  3. jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

    jQuery框架学习第一天:开始认识jQueryjQuery框架学习第二天:jQuery中万能的选择器jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQuer ...

  4. Android SQLite与AutoCompleteTextView

    读取SQLite中的数据显示在AutoCompleteTextView中,支持动态加入SQLite中不存在的数据. package zhang.ya; import java.io.File; imp ...

  5. python SQLAchemy外键关联

    join 1.利用filter import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarati ...

  6. 千里之堤毁于蚁穴(慎用HD Wallets)

    转自:http://blog.sina.com.cn/s/blog_12ce70a430102vbu9.html 千里之堤毁于蚁穴(慎用HD Wallets) -- 随机系列谈之四 现在我们都该明白, ...

  7. WPF&Silverlight5 常用功能差异

    一晃从Wpf转到sl也有半年多了,总想总结一下wpf和sl的差异,今天终于下笔. 首先来个整体图: 通过上图可以发现其实sl只是使用了wpf的一小部分,只是sl依赖的freamwork有很大部分都一样 ...

  8. 大数据平台搭建:Hadoop

    To construct big data distributed platform based on Hadoop is a common method. Hadoop comes fron Goo ...

  9. Zabbix3.4服务器的搭建--CentOS7

    本教程是目前最简单的Zabbix搭建教程.因为不是编译方式,直接用官方的分发包(rpm)安装. 1.前期准备 安装CentOS 7.4系统后.开启网络功能,其他东西均可不装.切记一定不要配置环境.还有 ...

  10. 三、基于任务的异步模式(TAP),推荐使用

    一.引言 在上两个专题中我为大家介绍.NET 1.0中的APM和.NET 2.0中的EAP,在使用前面两种模式进行异步编程的时候,大家多多少少肯定会感觉到实现起来比较麻烦, 首先我个人觉得,当使用AP ...