Vue props父组件向子组件传值详解
vue官网上可以说有我们想要的一切,先贴上通过prop传值的官网地址:通过prop向子组件传递数据
Prop是什么?
Prop是你可以在组件上注册的一些自定义特性。当一个值传递给一个prop特性的时候,它就变成了那个组件实例的一个属性。
从这句话上面我们能看出两点
1、prop是写在组件上的。
2、把父组件的一个值传给子组件时,这个值通过prop转化成了这个子组件实例的一个属性。
不理解第二句话没关系,看下面例子。
基础--静态传值
1、首先创建一个Vue实例
2、注册一个组件(这样注册组件的方式是全局注册),还记得我们第一句话吗?prop是在组件上的。因为可以是多个,所以是props。
在props上声明的是title,在我们的template模板中使用的都是它。
3、使用组件。
<script>
//第二步: 注册一个全局组件
Vue.component('props-component', {
// 在这个组件上声明props
props:['title'],
template:`
<div>{{title}}</div>
`
});
// 第一步:声明Vue
let vm = new Vue({
el:'#app'
});
</script>
<div id="app">
<!-- 第三步:使用组件 -->
<props-component title="props so easy"></props-component>
</div>
这只是一个非常简单的静态传值,可在实际中我们几乎不用静态传值。
进阶--动态传值
我刚学习vue的时候,一直不知道props的流程到底是怎么样的,也就是我是先创建组件,还是先声明一个vue实例等等。流程很重要,
也可以说这种思想很重要。
说下我的理解:
1、首先我们应当知道自己创建的组件里面是什么标签啊之类的。我应用到哪个地方?具体模板应该是什么样子的?
就像我们上面例子中的这个最简单的模板。
<div>{{title}}</div>
2、声明组件上的props。
3、实例上的data值应当和props声明的值对应。
看下面的例子:
场景:我想写一个页面的header标签组件。
第一步:
// 第一步:声明Vue
let vm = new Vue({
el:'#app',
data:{ }
});
第二步:这个组件应当长什么样子?
// 第二步:创建组件
Vue.component('my-header', {
props:['lists'],
template:`
<header>
<ul>
<li>{{lists}}</li>
</ul>
</header>
`
})
第三步:声明headerList(其实熟练的话,这步骤完全省略了)
let vm = new Vue({
el:'#app',
data:{
headerList:'首页'
}
});
第四步:使用组件 :lists="headerList"
lists是我们在组件中props声明的,headerList是我们在根实例中声明的属性
<my-header :lists="headerList"></my-header>
这样就是一个最简单的组件传值了。
打完收工
Vue props父组件向子组件传值详解的更多相关文章
- vue中父级与子组件生命周期的先后顺序
1.vue的生命周期 2.views/createrCustormer.vue为父级 <template> <expressService /> </ ...
- vue中父组件使用props或者$attras向子组件中传值
知识点:vue中使用props或者$attras向子组件中传值 (1) props传值 子组件必须注册好要传的数据() props:['id'] (2)$attrs传值 该数据在props中,没有注册 ...
- Vue父组件向子组件传值以及data和props的区别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xukongjing1/article/ ...
- Vue 组件&组件之间的通信 之 父组件向子组件传值
父组件向子组件传值:父组件通过属性向下传值的方式和子组件通信: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:com-b要获取父组件dat ...
- vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。
vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...
- vue 父组件给子组件传值 Vue父组件给子组件传方法 Vue父组件把整个实例传给子组件
Home.vue <template> <!-- 所有的内容要被根节点包含起来 --> <div id="home"> <v-header ...
- Vue中父组件向子组件传值
Vue中父组件向子组件传值 相关Html: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Vue 父组件向子组件传值,传方法,传父组件整体
父子组件传值 1.父组件调用子组件时绑定属性,例如-> :title="title" 2.子组件中在props中声明title:props:['title','msg'] 3 ...
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
前端方面,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是传统的js来进行开发,而EasyDSS使用的是webpack+vue来进行开发的,了解vue+webpack的 ...
随机推荐
- 神经网络系列学习笔记(一)——神经网络之ANN学习资料汇总
ANN tutorial: http://adventuresinmachinelearning.com/neural-networks-tutorial/ https://www.cs.toront ...
- CSS3解决移动端手指点击或滑动屏幕时出现的浅蓝色背景框
当时做完移动端页面发现点击图片(背景图按钮),出现了浅蓝色背景,实属影响页面美观,解决这一问题代码如下 html,body{ -webkit-tap-highlight-color: rgba(0,0 ...
- Python全栈day 03
Python全栈day 03 一.运算符补充 in ,逻辑运算符,判断某字符或某字符串是否在一个大的字符串中,输出得到bool型数据. value = '我是中国人' v = '我' if v in ...
- Git使用简单总结--源自廖雪峰网站
创建版本库git add加入到暂存区git commit -m" "加入到分支 时光机穿梭git satus查看仓库的当前状态git diff file 查看修改内容 版本回退HE ...
- 修改 cmd 字体为 Consolas
windows 下的 cmd 窗口默认的字体有点难看,长时间使用操作 node.js 有点小疲劳,可以修改注册表替换字体为 Consolas,并且可以全屏 cmd 窗口,代码如下: Windows R ...
- 1- js vue.js
1 js 2 Vue.js
- android singleTop 不起作用
今天,排查问题,发现设置了singleTop 的activity, 多次启动依然是多个acitivity,而不是一个. 明明在清单里面设置了,但是就是启动了多个. 可能是因为启动的太快,导致系统判断有 ...
- 运行SparkStreaming程序时出现 Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowA异常
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowA 这个问题是版本不统一导致的 ...
- objc中的类方法和实例方法有什么本质区别和联系
类方法: 类方法是属于类对象的 类方法只能通过类对象调用 类方法中的self是类对象 类方法可以调用其他的类方法 类方法中不能访问成员变量 类方法中不能直接调用对象方法 类方法是存储在元类对象的方法缓 ...
- Visual Studio 提示某个dll文件(已在Microsoft Visual Studio 外对该文件进行了修改,是否重新加载它)
如题: Visual Studio 提示某个dll文件(已在Microsoft Visual Studio 外对该文件进行了修改,是否重新加载它) 如果选择“是”,那恭喜你,第二次生成的时候,引用这个 ...