vue中的props对象

1.props对象的定义

props其实是properties的缩写,props对象是用来定义属性的。props对象可以接受数组形式的参数又或者是对象形式的参数。

数组形式

props: ['title', 'likes', 'isPublished', 'commentIds', 'author']

对象形式

在对象形式中,可以指定该属性的类型,这些 property 的名称和值分别是 prop 各自的名称和类型。

props: {title: String,likes: Number,isPublished: Boolean,commentIds: Array,author: Object,callback: Function,contactsPromise: Promise // or any other constructor
}

2.关于属性的命名方法 (驼峰命名法)

根据官方解释,HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:

Vue.component('blog-post', {// 在 JavaScript 中是 camelCase 的props: ['postTitle'],template: '<h3>{{ postTitle }}</h3>'
})

在HTML中使用给组件的属性赋值时就需要这样:

<!-- 在 HTML 中是 kebab-case 的 -->
<blog-post post-title="hello!"></blog-post>

这个官方案例可以很清晰得看到postTitle------>post-title

3. props值的传递

这个很容易理解,props中对应的属性是对应HTML中的attribute变量的,所以我们可以这样传递值:

<!--这样直接赋值-->
<blog-post title="My journey with Vue"></blog-post><!--也可以通过v-bind绑定赋值-->
<blog-post v-bind:title="data"></blog-post>

4.组件间数据的传递

props经常用来将父组件的数据传递到子组件,这个实现十分简单,就是通过v-bind绑定属性在将父组件中的数据传递到子组件中。

下面代码或许有点乱,但没关系,我一步步解读:

  1. 定义了一个父组件father-node,并且data中定义一个名为count的数据。
  2. 定义了一个子组件child-node,在props中定义了一个count属性。
  3. 在父组件的模板中我们使用了子组件child-node,并通过v-bind将father-node中名为count的数据传递给了child-node的count属性。
  4. 然后,我们将child-node的count属性值赋给了child-node的data中的child-count数据,并进行了展示。
  5. 数据流长这样:父组件的data------->子组件的props--------->子组件的data
<script>Vue.component("father-node",{template:'<div><child-node :count="count"></child-node></div>',//一个父组件数据countdata:function(){return{count:0}},component:{'child-node':{template:'<p>来自父组件的count:{{child-count}}</p>',props:['count'],data:{function{return {child-count:this.count}}}}}})
</script>

为什么这样传呢?

每次父级组件发生变更时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。

vue中的props对象相关推荐

  1. 理解Vue中的methods对象方法里的this指向,并解读源码

    Vue3的版本 "version": "3.2.20" 阅读区域 618 - 645 解决疑惑 1. methods 对象的 this指向 2. methods ...

  2. vue 中遍历数组对象 存到一个新数组里

    vue 中遍历数组对象 存到一个新数组里(亲测可行!!!) 参考文档 : MDN-解构赋值 方法一 : For of 迭代和解构 var people = [{name: 'Mike Smith',f ...

  3. Vue中的 props 属性

    1.什么是 props  props 用于组件的传值,他的工作就是为了接受外面传过来的数据,是一个配置项,与data.el.ref 是一个级别的. 2.props 的使用 --1 先准备子组件 Tex ...

  4. vue中的props

    StuProps.vue: <template><div class="props-container"><h1>我叫:{{name}}< ...

  5. 微信js扫一扫,扫条形码去掉code_128。在vue中封装全局对象的方法,封装微信js-sdk权限验证的方法

    微信公众号在调用扫一扫功能时,一维码(条形码)在直接返回结果时会在结果前带上EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E wx.sca ...

  6. vue中修改props传进来的值

    总所周知,vue是单向数据流,一般我们也不会在子组件里面修改父组件传进来的值,但总有需要修改的时候. 前段时间一个项目中有遇到上述情况,假设我直接传进来一个list, 当时我直接在里面改了list,但 ...

  7. vue中给window对象上添加属性的方法

    web页面通讯方法.window.open打开新页面,父子页面通讯的方法最直接的就是获取对方的window对象进行调用父子各自得属性及方法. 下面是整理的几种通讯得方法仅供参考 第一种 // 第一种方 ...

  8. vue中的路由对象和路由记录

    路由对象:就是一个对象喽,里面包含了当前激活的路由的状态信息,有URL解析得到的信息和URL匹配到的路由记录 一个路由对象表示当前激活的路由的状态信息,每次成功导航后都会产生一个新的对象 path:字 ...

  9. Vue中使用props

    文章目录 简单接收 接收,且限制类型 接收,且限制类型.限制必要性.指定默认值 可以在Vue官网访问props. 组件使用props接收从外部传递过来的数据. 组件通过props接收数据,props有 ...

最新文章

  1. python好学-html和Python哪个好学?
  2. 【Android Studio安装部署系列】十八、Android studio更换APP应用图标
  3. 关于SAP Cloud for Customer Cloud Application Studio登录失败的问题
  4. 三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点
  5. linux emacs命令,Linux Bash Shell 终端 Terminal Emacs 模式 常用 快捷键 命令
  6. word格式:导出与导入(如何将一套格式样式应用于另一个文档)- 教程篇
  7. Linux下docker的安装及常用命令
  8. x270 运行linux,Deepin15.7已成功安装至落魄的ThinkPad X270
  9. UVA 10330 Power Transmission
  10. ocelot 配置文件的动态更新
  11. WebSocket刷新断开原因、设计心跳机制防止自动断开连接
  12. mongodb的学习过程
  13. java:数据结构面试题
  14. RecyclerView.ViewHolder、Adapter
  15. VirtualBox 安装增强功能
  16. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  17. 用MATLAB求一阶微分方程(组)数值解
  18. 滑雪问题(dfs+dp)
  19. 独家报道|配音工具大放送|这么好听的声音居然……(教程篇)
  20. github上传大文件

热门文章

  1. 关于编写性能高效的javascript事件的技术
  2. cisco 2600的密码破解
  3. KMP算法的JavaScript实现
  4. Android Relativelayout
  5. java的(PO,VO,TO,BO,DAO,POJO)解释1
  6. SQL OVER用法
  7. 130道ASP.NET面试题
  8. 使用pycharm在本地开发,并实时同步到服务器(亲测)
  9. postman模拟post请求的四种请求体
  10. Mysql并发时经典常见的死锁原因及解决方法