欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue-组件的三种注册形式

程序员文章站 2024-03-15 10:39:23
...

组件注册及其通信传值(重点内容)

 

1.什么是组件?

任何一个页面我们都可以看做成无数个组件的构成,但是组件只能有一个根元素,也就是说我们需要将一个大的div把它整个包起来,组件化的方式可以让很多代码进行复用,例如类似的表单注册一个组件后,只需要将组件名作为一个标签使用即可达到想用的效果。

 

2.组件中的data必须是函数

可以看出,注册组件时传入的配置和创建Vue实例差不多,但也有不同,其中一个就是data属性必须是一个函数。

这是因为如果像Vue实例那样,传入一个对象,由于JS中对象类型的变量实际上保存的是对象的引用,所以当存在多个这样的组件时,会共享数据,导致一个组件中数据的改变会引起其他组件数据的改变。

而使用一个返回对象的函数,每次使用组件都会创建一个新的对象,这样就不会出现共享数据的问题来了

 

3.组件挂载元素的局限性:

由于html标签本身就有很多的限制性,例如table标签放不了div,option只能放在select里面等,所以组件挂载元素的时候要注意使用i属性,他可以避免自定义组件在标签中的限制性

 

 

4.组件的分类:

(1)局部组件

在vue实例中使用实例属性components来进行注册,为局部组件,只能在该vue实例绑定的dom节点内使用.

例如:

<div id="root">

<list></list>

<br/>

<now></now>



</div>

<script>

new Vue({

//绑定元素

el:"#root",

data:{

},

//注册局部组件

components:{

· 'list':{

//模板只能有一个根元素

template:'<div><span>this is list</sapn><br/><p>Do you see?</p></div>',

},

'now':{

template:'<div>this is time</div>'

}

}

})

</script>

 

(2)全局组件的注册

①使用vue提供的静态函数component注册

<div id="root">

<mycomponent></mycomponent>

</div>



<script>

Vue.component('mycomponent',{

template: `<div>这是一个自定义组件,数据域为{{message}}</div>`,

//下面的数据域只能在该组件模板中使用

data () {

return {

message: 'hello world'

}

}

})

//必须创建绑定元素一个实例,不然无法使用定义的组件

new Vue({

el:"#root",

})

</script>

 

②单文件组件

即后缀为vue的文件,每一个文件都是一个单独的组件,使用脚手架创建的的项目组件目录位于src下的components里,我们可以看看里面的例子文件,代码如下:

<template>

<div class="hello">

<h1>{{ msg }}</h1>

<h2>Essential Links</h2>

</div>

</template>



<script>

export default {

name: 'HelloWorld',

data () {

return {

msg: 'Welcome to Your Vue.js App'

}

}

}

</script>



<style scoped>

h1,h2{

font-weight:normal;

}

</style>

 

单文件组件以三个部分组成:模板,脚本,样式

 

模板:主要以HTML标签及数据变量为主,是组件的基础部分。

 

脚本:即js代码,主要是对数据的操作。

 

样式:scoped代表这个样式只在这个组件内生效。

<style>有scope属性后,能够将标签内部的CSS选择器自动加上后缀,使其仅应用在此组件内。

 

相关标签: vue 组件

上一篇: 安装labelme

下一篇: Servlet跳转