首页 > 其他分享 >8.Vue中的组件化开发

8.Vue中的组件化开发

时间:2022-11-05 20:58:23浏览次数:57  
标签:Vue name vue 开发 组件 全局 data

1.组件化概念

在开发中,我们将页面的某一部分功能编写成一个组件,以后直接在页面中引用即可,如导航栏,轮播图,等,封装成一个个的组件,以后直接使用即可

Vue的官方也推荐我们组件化开发,即一个组件就是一个vue文件

组件化的特点:

  • 组件化可以将功能实现模块化,奖该组件需要的html,js,csss代码集中在一起
  • 有利于代码的重用性
  • 提高开发效率

 

 

2.局部组件和全局组件

2.1 局部组件

局部组件只能在当前页面使用,其他组件是无法使用的,建议在开发中尽可能的使用全局组件,也就是单页面开发(一个文件只有一个组件)

局部组件定义在当前组件的components中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 引入vue.js-->
    <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <!--    局部组件只能在定义的当前文件中使用-->
    <navbar></navbar>

</div>
</body>
<script>
    new Vue({
        // vue管理的区域,所有的vue语法仅在该区域内生效
        el: '#app',
        data: {},
        // 定义局部组件
        components: {
            navbar: {
                template: `
                  <div>我是一个局部组件{{ name }}
                  <button @click="handler">点我</button>
                  </div>`,

                data() {
                    return {
                        name: 'kunmzhao'
                    }
                },
                methods: {
                    handler() {
                        alert('hello')
                    }
                }
            }
        }
    })
</script>
</html>

 

2.2 全局组件

全局组件定义之后,在任意的vue文件中都可以直接使用,就行html中的div标签

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <!-- 引入vue.js-->
 7     <script src="js/vue.js"></script>
 8 </head>
 9 <body>
10 <div id="app">
11     <!--    全局组件的使用-->
12     <navbar></navbar>
13 
14 </div>
15 </body>
16 <script>
17     // 定义一个全局组件
18     Vue.component('navbar', {
19         template: `
20           <div>我是一个全局组件{{ name }}
21           <button @click="handler">点我</button>
22           </div>`,
23         // 组件大data必须是一个函数,返回的是一个对象
24         data() {
25             return {
26                 name: 'kunmzhao'
27             }
28         },
29         methods: {
30             handler() {
31                 alert('hello')
32             }
33         }
34     })
35     new Vue({
36         // vue管理的区域,所有的vue语法仅在该区域内生效
37         el: '#app',
38         data: {},
39     })
40 </script>
41 </html>
View Code

3.组件间的通信

标签:Vue,name,vue,开发,组件,全局,data
From: https://www.cnblogs.com/victor1234/p/16861242.html

相关文章

  • 7.Vue常用属性
    1.data:数据属性在之前的学习中我们已经了解到了data,属性中存放的就是js变量<script>newVue({el:'#app',//datadata:{......
  • vue如何过滤出一个数组中不包含另一个数组的数据
    data里面定义测试数组arr1:[1,3,5,7,11,0],arr2:[1,11],arrres:[]然后过滤一下for(letoneofthis.arr1){if(this.arr2.indexOf(one)==-1)......
  • 华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动
    11月4日,HDC2022华为开发者大会在东莞松山湖举办。在本次大会的HMSCore创新图形能力分论坛中,HMSCore重点介绍了其在3D技术领域的创新应用方向,其中3D建模服务展示了创新的......
  • 6.Vue中与后端的交互
    浏览器的同源策略:不允许向不同源(IP+Port)发送请求或者获取数据解决跨域的方式:1.后端解决:在响应头中添加"Access-Control-Allow-Origin=*"2.前端解决3.服务器代理......
  • 【Vue】可编辑表格与三级联动下拉
    需求是给员工分配岗位,设计上是一人多岗的存在...单位—— 部门—— 岗位 这样的层级功能效果:因为员工可以在不同的单位下任职岗位,所以这个每一个岗位都是一个独立......
  • 003.完成第一个接口的开发
    1.开发firstrequest接口/***描述:演示接口和传参*//@RestController表示返回时JSON格式不是页面*/@RestControllerpublicclassParaController{@G......
  • 一个 SAP 开发工程师的成长史
    本文副标题:我的演讲稿-如何快速上手新工作,持续提升个人竞争力最近我收到了SAP上海研究院一个部门领导的邀请,参加了一个信息素养故事分享会。我也就"如何快速上手新工......
  • VUE一些特殊的地方
    1、js引用类型赋值不改变原对象值 在JS中对象的赋值是默认引用赋值的,如果改变了赋值对象原对象也会跟着改变,如果想要复制赋值,那么就需要重新分配对象:vara={'name':......
  • vue+WangEditor+自定义上传图片
     1<divclass="content">2<pname="editor"id="editor"ref="editor"style="z-index:-1"></p>3<el-inputid="in"type="hidden"></el......
  • 在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播
    轮播图左右的切换按钮、如果点击没有反应,控制台也没有报错。很大可能是==版本问题==。如果不指定版本信息、默认安装的是最新的版本。版本过高或者过低都有可能导致无效。......