I am poor and inexperienced.

Vue

【VUE】05:Vue 组件


avatar
Lucky 2022-09-27 444

1、Vue组件基础

Vue的站点是可以通过组件拼凑的方式进行搭建的,这个的好处也是蛮多的。

  • 组件是独立和可复用的单元,让开发者使用小型、独立和通常可复用的组件进行大型应用的构建。
  • 组件开发能大幅度提高应用开发效率、复用性。
  • 能实现“高聚合”与“低耦合”,使得前端开发的过程变成堆搭积木的过程。

(例如:玩乐高一样,用小零件拼凑成你想要的模型)

 

官方:组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构

可能你还是不太了解吧,不过没关系啦,看下图。

 

自定义一个组件,代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习Vue的组件</title>
</head>
<body>

<!--view层,模板-->
<div id="app">
    <cv-vue></cv-vue>
</div>

<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    Vue.component("cv-vue",{
        template: '<h1>Hello Vue</h1>'
    });
    var mv = new Vue({
        el: '#app',
    });
</script>
</body>
</html>

 

说明:

Vue.component():注册组件

cv-vue:自定义组件的名字

template:组件的模板

 

2、props数学传递参数

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学习Vue的props传值</title>
</head>
<body>

<!--view层,模板-->
<div id="app">
    <cv-vue v-for="item in items" v-bind:course="item"></cv-vue>
</div>
<!--1.导入Vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script type="text/javascript">
    Vue.component("cv-vue",{
        props: ['course'],
        template: '<li>{{course}}</li>'
    });
    var mv = new Vue({
        el: '#app',
        data:{
            items:["java","Linux","前端"]
        }
    });
</script>
</body>
</html>

 

说明:

v-for=“item in items”:遍历Vue实例中定义的名为items的数组,并创建同等数量的组件

v-bind:course=“item”:将遍历的item项绑定到组件中props定义名为course属性上;= 号左边的course为props定义的属性名,右边的为item in items 中遍历的item项的值。