当前位置: 首页 > news >正文

Vue2 组件基础使用、父子组件之间的传值

一、什么是组件

如画红框的这些区域都是由vue里的各种组件组成、提高复用信

通常一个应用会以一棵嵌套的组件树的形式来组织:
例如,你可能会有页头、侧边栏、内容区等组件,每个组件又包含了其它的像导航链接、博文之类的组件。
为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别。这里有两种组件的注册类型:全局注册局部注册。至此,我们的组件都只是通过 Vue.component 全局注册的:

创建一个组件示例:

然后到app.vue 进行使用

<script>
import Content from './components/Content.vue'  //组件
export default {data(){return{};},components:{   //使用组件的函数Content}
};
</script><template><!-- 使用组件 --><Content></Content>
</template><style scoped></style>
向父容器传值:

传递 prop

如果我们正在构建一个博客,我们可能需要一个表示博客文章的组件。我们希望所有的博客文章分享相同的视觉布局,但有不同的内容。要实现这样的效果自然必须向组件中传递数据,例如每篇文章标题和内容,这就会使用到 prop。

父容器向子组件通过 :任意命名 传递到子组件
子组件通过props 来取到的数据
app.vue 里就取到了

Prop类型: 对接受的类型进行限制
  • String

  • Number

  • Boolean

  • Array

  • Object

  • Date

  • Function

  • Symbol

Boolean 类型转换#

为了更贴近原生 boolean attributes 的行为,声明为 Boolean 类型的 props 有特别的类型转换规则。以带有如下声明的 <MyComponent> 组件为例:

js

export default {  props: {    disabled: Boolean  }}

该组件可以被这样使用:

template

<!-- 等同于传入 :disabled="true" --><MyComponent disabled /><!-- 等同于传入 :disabled="false" --><MyComponent />

当一个 prop 被声明为允许多种类型时,例如:

js

export default {  props: {    disabled: [Boolean, Number]  }}

无论声明类型的顺序如何,Boolean 类型的特殊转换规则都会被应用。

  • 所有 prop 默认都是可选的,除非声明了 required: true。

  • 除 Boolean 外的未传递的可选 prop 将会有一个默认值 undefined。

  • Boolean 类型的未传递 prop 将被转换为 false。这可以通过为它设置 default 来更改——例如:设置为 default: undefined 将与非布尔类型的 prop 的行为保持一致。

  • 如果声明了 default 值,那么在 prop 的值被解析为 undefined 时,无论 prop 是未被传递还是显式指明的 undefined,都会改为 default 值。

自定义事件向父容器传递数据

一、定义一个@click事件通过事件将子数据msgs传递

二、 在父组件中,通过v-on监听子组件中自定义的事件 赋值给父容器msg

三、父组件访问子组件$refs

ref把子组件的属性传给了父组件

打印后查看

四、子组件访问父组件和跟组件

<!-- 子组件访问父组件:$parent -->的数据 不推荐使用 影响复用性

<!-- 子组件访问根组件:$root -->

http://www.lryc.cn/news/21810.html

相关文章:

  • 代码随想录算法训练营 || 贪心算法 122 55 45
  • 数据结构基础之栈和队列
  • 【Spark分布式内存计算框架——Spark Streaming】3.入门案例(上)官方案例运行
  • 【博学谷学习记录】超强总结,用心分享 | 架构师 Tomcat源码学习总结
  • 泛型<E>
  • 你对MANIFEST.MF这个文件知道多少?
  • 史上最经典垃圾回收器(CMS,G1)详解、适用场景及特点、使用命令
  • Hive查询中的优化
  • 【开发规范】go项目开发中的[流程,git,代码,目录,微服务仓库管理,静态检查]
  • 数组初始化方式与decimal.InvalidOperation
  • 【Opencv-python】之入门安装
  • MySQL进阶(二)
  • 热爱所有热爱
  • Redis学习之数据删除与淘汰策略(七)
  • HashMap 面试专题
  • 域组策略自动更新实验报告
  • Java自定义生成二维码(兼容你所有的需求)
  • Spring事务的隔离级别
  • JVM系统优化实践(4):以支付系统为例
  • 16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)
  • 无自动化测试系统设计方法论
  • 架构初探-学习笔记
  • 在成都想转行IT,选择什么专业比较好?
  • 【Spark分布式内存计算框架——Spark Streaming】4.入门案例(下)Streaming 工作原理
  • 2、算法先导---思维能力与工具
  • WordPress 函数:add_theme_support() 开启主题自定义功能(全面)
  • Winform控件开发(16)——Timer(史上最全)
  • 游戏高度可配置化:通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解
  • CountDownLatch与CyclicBarrier原理剖析
  • NLP中的对话机器人——预训练基准模型