[聚合文章] vue.js组件学习(上)

vue.js 2017-11-14 16 阅读

组件是vue.js中非常重要的一部分,打个比方,会用组件得人喝着茶就写完的页面,不会用的代码打到手抽筋也未必完的成。

首先何为组件

组件可以封装重用的代码,扩展HTML元素,更高的说组件是自定义元素。

组件化的html

写入vue.js的基本结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
    </div>
    <script src="./../vue.js"></script>
    <script>
        var vm = new Vue({
            el:"#app", 
        })
    </script>
</body>
</html>

然后实例new中加入components 组件

 components:{ child }  //注册局部组件

在id=app中添加<child></child>

实例化一个child对象,里边添加模板组件template,然后添加内容为

template:"<div class="child">children</div>"  //这里的模板会替代child

这样我们就可以在后台发现多出来一个class名为child的标签,页面内容为children

可我们想组建出多个该怎么弄呢?

只需要在我们在components组件中加入childSibling

components:{ child,childSibling }

然后如同上边一样实例一个childSibling对象那样,然后在id="app"中再添加一个<child-sibling>自定义标签,这样我们就可以得到两个标签了。这里要注意这里的命名转换

创建子组件

首先,我们应实例化一个子组件son

var son = {
    template:"<div>这是子元素</div>"
}

然后我们要在目标父组件中添加components组件,里边写入这个son,再然后在template中添加<son></son>

template:"<div><son></son</div>"

这样我们就完成了html的组件化,当然实际应用不可能这么简单,不过都是以此类推的。

从父元素中获取数据

如果我们用常规的方法获取data里数据添加到模板里会报错,这时就用到props,这个属性是用来声明子组件预期的数据,我们可以通过这个方法来得到data里的数据。

声明子组件预期的数据

props:["预期数据"]

绑定data数据,假设父元素为<ele>

data:{
    数据:"111"
}
<ele v-bind 预期数据="数据" ></ele>

这样我们在组件中添加预期数据就可得到data里的数据内容了

还有很多这样的方法可以参照官网进行操作https://cn.vuejs.org/v2/guide...

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。