目录

  • 全局组件和局部组件
    • 全局组件
    • 局部组件
  • 注册组件的2种方式
    • 对象文本注册
    • 模板注册
  • 组件是使用
    • 使用组件名称引用
    • 标签引用
  • 父子组件的传值
    • 参数之间的传递
    • 利用事件机制,配合方法实现父子组件传值

全局组件和局部组件

简单来说,全局组件可以在整个页面中使用,在JS模板语法中,还可以导出到其它文件中使用。局部组件只能在挂载的Vue实例中使用

全局组件

定义方法:

Vue.component('name',{template:'<h1>welcome</h1>',data:()=>{return {}},methods:{},porps:[]
})

局部组件

定义方法:

new Vue({components:{name:{tempalte:'<h1>welcome</h1>',data:()=>{return {}},methods:{},props:[]}}
})

注册组件的2种方式

注意,组件必须使用单个根元素,否则Vue会提示错误

Error compiling template:Component template should contain exactly one root element

对象文本注册

// 这种注册方法没有代码提示Vue.component('name',{tempalte:'<h1>welcome</h1>'
})

模板注册

<body>// 注意,组件内容必须<tempalte id="temp"><div><h1>welcome</h1><p>welcome</p></div></tempalte>
</body>
<script>Vue.component('name',{template:'#temp'})
</script>

组件是使用

使用组件名称引用

<body><name></name>
</body>
<script>Vue.component('name', {template: '<h1>welcome</h1>'})
</script>

标签引用

使用component标签,绑定is属性,可以动态切换组件

<body><div class="app"><component :is="comName"></component><input type="button" value="switch" @click="myclick"></div>
</body>
<script src="vue.js"></script>
<script>Vue.component('first', {template: '<h1>first component</h1>'})Vue.component('second', {template: '<h1>second component</h1>'})new Vue({el: '.app',data: {comName: 'first'},methods: {myclick() {if (this.comName === 'first') {this.comName = 'second'} else {this.comName = 'first'}}}})
</script>

父子组件的传值

此处的父组件,指的是Vue实例,Vue实例某种意义上可以看作是一个组件。子组件指的是在Vue实例中引用的组件,不管是全局组件还是局部组件

参数之间的传递

使用v-bind动态传递父组件的值给子组件

<body><div class="app"><soncom :ptitle="title"></soncom></div>
</body>
<script src="vue.js"></script>
<script>var that = null;Vue.component('soncom', {template: '<h1>{{ptitle}}</h1>',props: ['ptitle']})new Vue({el: '.app',data: {title: '我是父组件的值'}})
</script>

利用事件机制,配合方法实现父子组件传值

<body><div class="app"><soncom :ptitle="title" @func="myClick"></soncom></div>
</body>
<script src="vue.js"></script>
<script>var that = null;Vue.component('soncom', {template: '<h1 @click="sonClick">{{ptitle}}</h1>',props: ['ptitle'],data: () => {return {sonTitle: '我是子组件的值'}},methods: {sonClick() {this.$emit('func', this.sonTitle)}}})new Vue({el: '.app',data: {title: '我是父组件的值',receiveTitle: ''},methods: {myClick(data) {this.receiveTitle = data}}})
</script>

Vue_01_组件的使用相关推荐

  1. 第四天:Vue组件的slot以及webpack

    插槽 认识slot 在生活中,很多地方都有插槽,电脑的USB插槽,插板中的电源插槽等. 插槽的目的是让我们原来的设备具备更多的扩展性.比如电脑的USB我们可以插入U盘.鼠标.键盘.硬盘.手机.音响等等 ...

  2. 第三天:Vue的组件化

    1.认识组件化 我们将一个完整的页面分成很多个组件,每个组件都用于实现页面的一个功能块,而每一个组件又可以进行细分. 组件化是Vuejs中的重要思想,它提供了一种抽象,让我们可以开发出一个个独立可复用 ...

  3. 客快物流大数据项目(六):Docker与虚拟机的形象比喻及组件介绍

    目录 Docker与虚拟机的形象比喻及组件介绍 一.Docker与虚拟机的形象比喻

  4. 2021年大数据Hadoop(二十六):YARN三大组件介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn三大组件介绍 ResourceManager No ...

  5. android layout组件,Android UI学习 - Linear Layout, RelativeLayout

    1.一些常用的公共属性介绍 1) layout_width -宽 fill_parent: 宽度和父元素相同,wrap_content: 宽度随本身的内容所调整,或者指定 px值来设置宽 2) lay ...

  6. vue 拓扑组件_Authing 登录组件优化实践解析

    Authing Guard 是一种可嵌入的登录表单,可根据你的需求进行配置,它使你可以轻松添加各种社会化登录方式,以便你的用户可以无缝登录,并且在不同平台拥有一致的登录体验. Authing 2.0 ...

  7. 微信小程序自定义组件Component的简单使用

    首先为什么要使用component 这里列举2个例子, 1 如果项目中多个地方使用同一个弹框, 2 两个同事合作写一个界面, 这2中情况使用组件是比较好的选择 开始吧 第一步首先创建一个包用于存放组件 ...

  8. RelativeLayout布局,不希望文本盖住其他组件

    简单的图先看上一看 上面使用的是RelativeLayout布局(不要问为什么不用LinearLayout,因为最右边的信箱的右上角还会有个红点,相对布局直接些) 需要实现的效果是,TextView居 ...

  9. spring 组件基于注解的注册方式

    spring 中常用的组件标签有: @Controller:控制层 @Service:业务层 @Repository:数据层 @Component:普通的pojo注入到spring容器 组件注册方式: ...

最新文章

  1. iBATIS In Action:使用映射语句(一)
  2. 高清SDI编码器|上海视涛科技
  3. 20165303实验一 Java开发环境的熟悉
  4. HDR (automatic exposure control + Tonemapping + Bloom)
  5. AOSP Ubuntu命令
  6. VMware Skyline
  7. Configuration、SessionFactory、Session
  8. JavaScript Promise查缺补漏
  9. (第八章)左右外连接
  10. C代码在SDK编辑中的使用————(一)
  11. I2S原理分析(二十九)
  12. 最短路径算法详细介绍
  13. iostate知识要点
  14. Algorithm:数学建模大赛(CUMCM/NPMCM)之建模历年题目类型、数据分析及官方评阅要点之详细攻略
  15. 在 iOS 设备上安装和使用 OpenSSH
  16. 2019互联网寒冬期IT大牛不容错过的泰牛程序员PHP系列高级教程
  17. html 网站发布到公网
  18. XJTU 新闻英语阅读重点词汇汇总
  19. Kubernetes微服务入门教程:部署spring-boot应用
  20. 方向导数与梯度(衡量空间向量变化趋势)

热门文章

  1. 如何在vs code中配置miniconda/anaconda环境(两种方法)
  2. spi子系统实现数码管控制
  3. 10亿个数中找出最大的10000个数之top K问题
  4. 如何利用Goby进行外围打点
  5. 基于 Paraview 扩展与实现——(2)
  6. 进制转换(十进制转二进制)
  7. java宠物医院,基于SSM框架的JAVA宠物医院管理信息系统,源码分享
  8. vue Tesseract的 ocr 文字识别
  9. TM1638模块驱动(stm32,可以显示led灯,数码管,按键操作)(包含全部功能)
  10. Latex论文写作排版遇到的问题