Vue-组件化,父组件传子组件常见传值方式
前言
我们都知道vue核心之一:组件化,vue中万物皆组件,组件化我认为应该来至于模块化的设计思想,比如在模块化开发中,一个模块就是一个实现特定功能的独立的文件,有了模块我们就更方便去阅读代码,更方便使用别人的代码,同时自己的代码页更加易于维护,还有就是比如常用到的懒加载似乎也有模块化的感觉。前端组件化应该就是模块化的表现,vue中万物皆组件,页面上每个组件相互独立、可视化、可交互化,组件之间又可以相互组合,总之,组件化我的感觉就是一个页面对应一个容器,页面顶部有导航,有轮播图,侧边有侧边栏,中间有正文内容区域,底部也有独立的组件,不同的页面又根据内容需要,盛放相关的组件。要想让容器呈现不同效果,就需要组件之间相互交互通信。(父传子和子传父)
你可能不太懂什么是父组件,什么是子组件,更别说之间的通信了,因为我学习的时候就不太了解怎么区分,只是死记了下来,这里我说下我的理解,我们将一段代码封装成一个组件,而这个组件又在另一个容器中使用,那么使用这个组件的容器就叫父容器,成为了父组件,我们封装的代码就叫子组件。必须我们在使用某ui组件库的时候,我们使用的地方叫父组件,我们传递的值给了子组件,根据ui库提供的绑定方法其实就是子组件传递给我们使用的父组件。下面介绍一下常见的传值方式,都省略了组件注册的部分代码,实际开发中会将组件写在单独的文件中,只需要在容器中引入并使用。
父传子
总体来说就是父组件在引用的子组件中定义一个传值的属性,子组件通过props接收到父组件传来的值,同时子组件使用传来的值,
普通的父传子
<div id="app">
<subtag msg="hello"></subtag>
</div>
<script>
Vue.component('subtag', {
props: ['msg'],
template: '<span>{{msg}}</span>'
})
new Vue({
el: "#app"
})
</script>
上面的代码,div为父组件,使用了subtag子组件,通过msg属性把值hello传递给子组件,子组件通过props接收到传递的值,并把值渲染到自己的template中。
动态绑定props传递参数
<div id="app">
<input type="text" v-model='par'>
<child :message='par'></child>
</div>
<script>
Vue.component('child', {
props: ['message'],
template: '<span>{{ message }}</span>'
})
new Vue({
el: '#app',
data: {
par: ""
}
})
</script>
上面的代码。div使用了子组件child,inut双向绑定在par变量,然后将par变量通过message传递给子组件,子组件通过props收到message后,并将值渲染到自己的template中。
需要注意的是,prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。
父向子传递一个数组并遍历。
<div id="app">
<ol>
<todo-item v-for="item in sites" v-bind:todo="item">
</todo-item>
</ol>
</div>
<script>
Vue.component('todo-item', {
props: ['todo'],
template: '<li>{{ todo.text }}</li>'
})
new Vue({
el: '#app',
data: {
sites: [
{ text: 'Runoob' },
{ text: 'Google' },
{ text: 'Taobao' }
]
}
})
</script>

上面的代码先遍历后传值,把遍历的每一项传给子组件,出现了这样的效果。
时间太晚了。。。。下期介绍我对子传父的理解。
Vue-组件化,父组件传子组件常见传值方式的更多相关文章
- vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法
Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...
- Vue 父组件循环使用refs调用子组件方法出现undefined的问题
Vue 父组件循环使用refs调用子组件方法出现undefined的问题 1. 背景 最近前端项目遇到一个问题,我在父组件中使用了两个相同的子组件child,分别设置ref为add和update.其中 ...
- Vue把父组件的方法传递给子组件调用(评论列表例子)
Vue把父组件的方法传递给子组件调用(评论列表例子) 效果展示: 相关Html: <!DOCTYPE html> <html lang="en"> < ...
- vue.js组件之间通讯--父组件调用子组件的一些方法,子组件暴露一些方法,让父组件调用
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 怎样在 Vue 里面使用自定义事件将子组件的数据传回给父组件?
首先, Vue 里面的组件之间的数据流动是 单向 的, 数据可以从父组件传递给子组件, 但不能从子组件传递给父组件, 因为组件和组件之间是 隔离 的. 就像两个嵌套的 黑盒子 . 能通过 props ...
- vue父组件异步传递prop到子组件echarts画图问题踩坑总结
效果图: 大致思路:考虑到5张图都是折线图,所以准备用一个子组件承接echarts画图,然后父组件通过prop传递不同数据来展示不同的图 踩坑问题: 1.引入line子组件,画了5个元素,但是只显示一 ...
- Vue父子组件数据双向绑定,子组件可修改props
第一种,子组件通过监听父组件数据,子组件改变数据之后通知给父组件 原文链接:https://blog.csdn.net/m0_37728716/article/details/81776929 父组件 ...
- vue3常见问题及解决方案(四)父组件切换行,然后子组件切换tab,子组件内的数据不刷新
问题描述 父组件切换行,然后子组件切换tab,子组件内的数据不刷新. 例如父组件为订单,子组件为订单相关商品和相关客户,商品和客户使用tab选项卡组织. 当tab显示商品页时,切换订单,商品页内容跟着 ...
随机推荐
- SQL SERVER数据库内 FOR XML PATH 函数用法
把自己点点滴滴的学习记录下来!!!! 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(TBJTXXCE)用来存放就诊患者信息,表结构 ...
- Vue.js自定义标签属性并获取属性,及绑定img的src属性的坑
一.定义属性: 一般定义属性都是为了动态的去获取属性的值,或者动态的设置属性的值,如果想仅仅是设置一个普通的属性,直接在便签上设置属性即可,就像使用html的title.name等属性一样,如< ...
- SpringBoot整合Xxl-Job
一.下载Xxl-Job源代码并导入本地并运行 Github地址:https://github.com/xuxueli/xxl-job 中文文档地址:https://www.xuxueli.com/xx ...
- webug第二关:从图片中你能找到什么?
第二关:从图片中你能找到什么? 记事本打开发现提示 binwalk,发现压缩包rar
- 如何在Camtasia中对录制视频进行动画编辑
生活中,我们时时会遇到要剪辑视频不知道哪一款软件比较简单:当我们想要录制电脑屏幕时,网上的方法也总是不奏效.那是否有一款软件可以同时兼备这两种功能呢?今天我给大家推荐的便是一款同时兼备这两种功能的软件 ...
- 使用Sidechain EQ优化FLStudio的贝斯和底鼓
混音的目标之一是平衡各个声音的音量.当两个声音占据相同的频率范围时,有时就比较难处理.这是贝司和底鼓之间经常会碰到的情况.很多时候我们会使用压缩(compression)来降低他们的音量. 然而,有 ...
- zabbix的搭建及操作(4)实现邮件,钉钉,微信报警
实现邮件报警 网页版邮箱中开启 POP3/SMTP/IMAP 生成授权码并记录 Server端安装配置邮件服务器 1.Yum安装邮件服务器 yum -y install mailx dos2unix ...
- Redis 基础数据结构之二 list(列表)
Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下list(列表)这种数据结构, ...
- Linux 上如何清除 RAM 内存高速缓存,缓存和交换空间
像任何其他的操作系统一样,GNU / Linux已经有效地实施了内存管理甚至更多.但是,如果有任何进程正在蚕食你的内存,你要清除它,Linux提供了一个方法来刷新或清除RAM缓存. 在Linux中如何 ...
- javaAgent与pinpoint
转载:https://www.cnblogs.com/kokov/p/12120033.html 项目中pinpoint应用: