Vue组件化开发(1)

组件化:

一个页面可以拆分为一个个组件,每个组件有自己独立的结构、样式、行为。

好处:

有下面两个,都是为了提升开发效率

1.便于维护:相比于小项目全部写在一起,这样组件化开发就容易维护,一旦几百行的代码异常,只需要找某个独立的组件代码去调整即可,所以项目越大,若是不做拆分维护起来难度就越大

2.利于复用:

封装好的组件可以拆分出来,别的页面直接拿去用就可以,页面的风格保持一致,维护时会同步更新

组件分类:

普通组件,根组件

App.vue(单文件组件)的三个组成部分

template : 结构(有且只能一个根元素)

script : js逻辑

style : 样式(支持less,需要装包)

若需要让组件支持less,先去style标签,lang=less" 开启less功能,装依赖包:yarn add less-loader

代码深入:

App.vue里面只能有一个template ,vue2规范规定里面再有一个<div>根结构, 如果需要多个div , 就在外面再包一层div呗。

这里在template中写一个div,class为a1,字符:我是内容

<template >

        <div class="a1">   我是内容     </div>

</template >

然后去style 里面写样式:

<style>

        .a1{

         width:300px;       

         height:500px;              

         background-color:pink;       

        }

</style>

若是大div里面要再加一个小盒子, 就是:

<template >

        <div class="a1">  

                <div class="a2"></div>

        </div>

</template >

<style>

        .a1{

         width:300px;       

         height:500px;              

         background-color:pink;       

        }

        a1.a2{

         width:100px;       

         height:100px;              

         background-color:red;       

        }

</style>

这里再提供逻辑:

<script >

//export default意指  导出当前组件的配置项,里面可以提供data(较特殊)  methods computed  watch 生命周期八大钩子等

export default {

        methods:{

        

        }

}

</script >

这里演示点击蓝色div 弹出hello

<template >

        <div class="a1">  

                <div class="a2" @click= "fn"></div>

        </div>

</template >

<script>

   export default {

        methods:{

               fn(){

                        alert('hello!')

                }

        }

   }

</script>

<style>

        .a1{

         width:300px;       

         height:500px;              

         background-color:pink;       

        }

        a1.a2{

         width:100px;       

         height:100px;              

         background-color:blue;       

        }

</style>

并且created也是支持的

<template >

        <div class="a1">  

                <div class="a2" @click= "fn"></div>

        </div>

</template >

<script>

   export default {
        created(){
            console.log('这是created钩子')
        }

        methods:{

               fn(){

                        alert('hello!')

                }

        }

   }

</script>

<style>

        .a1{

         width:300px;       

         height:500px;              

         background-color:pink;       

        }

        .a2{

         width:100px;       

         height:100px;              

         background-color:blue;       

        }

</style>

重新运行就正常运行了

总结:

(1)组件化:
页面可拆分成一个个组件,每个组件有着独立的结构、样式、行为① 好处:便于维护,利于复用,提升开发效率
② 组件分类:普通组件、根组件。
(2)根组件:
整个应用最上层的组件,包裹所有普通小组件,
一个根组件App.vue,包含的三个部分:
① template 结构(只能有一个根节点)
② style 样式(可以支持less,需要装包 less 和 less-loader)
③ script 行为

上一篇: 未曾加载Lodop主JS文件,请先调用loadCLodop过程TypeError: Cannot read properties of undefined (reading ‘PRINT_INIT‘)
下一篇: ERROR Failed to compile with 1 error21:03:21Failed to resolve loader: less-lpaderless经典语法在vue里面报错
北极糊的狐
博客等级 码龄5年 1万+粉丝 496原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值