文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue生命周期中的组件化是什么

2023-06-29 10:38

关注

这篇文章主要介绍了Vue生命周期中的组件化是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

引出生命周期

Vue生命周期中的组件化是什么

此时调用change,定时器回调修改opacity,数据修改,模板重新解析,再次调用change。

Vue生命周期中的组件化是什么

销毁流程

解绑(自定义)事件监听器

Vue生命周期中的组件化是什么

生命周期

Vue生命周期中的组件化是什么

生命周期总结

Vue生命周期中的组件化是什么

 <div id="root">        <!-- <h3 :>hello,{{name}}</h3> -->        <h3 :>hello,{{name}}</h3>        <button @click="stop">click stop</button>        <button @click="opacity = 1">opacity 1</button>    </div>    <script type="text/javascript">        Vue.config.productionTip = false;        new Vue({            el: "#root",            data: {                name: "atguigu",                opacity: 1,            },            methods: {                stop(){                    this.$destroy();                }            },            beforeDestroy() {                clearInterval(this.timer);            },            //vue完成模板解析,并把初始的真实的dom元素放入页面后(挂载完毕),会调用该函数。            mounted() {                this.timer = setInterval(() => {                    this.opacity -= 0.01;                    if (this.opacity <= 0) { this.opacity = 1 }                }, 16);            },        });    </script>

组件化 

template:

整个root容器当作模板

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

会直接替换掉root,把template当作模板进行解析。 

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

 非单文件组件

data需要用函数式写法

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

<div id="root">        <h3>{{msg}}</h3>       <!--组件标签-->       <school>       </school>       <hr>       <student>              </student>       <student>          </student>       <hello>       </hello>    </div>    <div id="root2">    </div>    <script type="text/javascript">        Vue.config.productionTip = false;        //创建school组件       const school = Vue.extend({            template:`            <div>                <h3>schoolname:{{schoolname}}</h3>                 <h3>schoolage{{schoolage}}</h3>                 <button @click='show'>点击提示</button>            </div>            `,            data(){                return{                    schoolname: "atguigu",                    schoolage:20,                }            },            methods: {                show(){                    alert(this.schoolname);                }            },       });       //创建stu组件       const student = Vue.extend({        template:`            <div>                <h3>stuname:{{stuname}}</h3>                <h3>stuage{{stuage}}</h3>            </div>            `,            data(){                return{                    stuname:'tom',                    stuage:18,                }            },       });       //创建hello组件       const hello = Vue.extend({            template:`            <div>                <h3>stuname:{{stuname}}</h3>                <h3>stuage{{stuage}}</h3>            </div>            `,            data(){                return{                    stuname:'tom',                    stuage:18,                }            },       });       //全局注册组件       Vue.component('hello',hello);        new Vue({            el: "#root",            data:{                msg:'this is msg'            },            //局部注册组件            components:{                school:school,                student,            }        });    </script>

 组件的几个注意点 

Vue生命周期中的组件化是什么

 组件的嵌套 

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <script type="text/javascript" src="../js/vue.js"></script>    <title>Document</title></head><body>    <div id="root">    </div>    <script type="text/javascript">        Vue.config.productionTip = false;        //创建student组件        const student = Vue.extend({            template:`            <div>                <h3>stuname:{{stuname}}</h3>                <h3>stuage{{stuage}}</h3>            </div>            `,            data(){                return{                    stuname:'tom',                    stuage:18,                }            },       });        //创建school组件       const school = Vue.extend({            template:`            <div>                <h3>schoolname:{{schoolname}}</h3>                 <h3>schoolage{{schoolage}}</h3>                 <button @click='show'>点击提示</button>                 <student></student>            </div>            `,            data(){                return{                    schoolname: "atguigu",                    schoolage:20,                }            },            methods: {                show(){                    alert(this.schoolname);                }            },             components:{                student:student,                           }         });       //创建hello组件       const hello = Vue.extend({            template:`            <div>                <h3>{{msg}}</h3>            </div>            `,            data(){                return{                    msg:'hello!'                }            },       });       const app = Vue.extend({           template:`                <div>                    <hello></hello>                    <school></school>                </div>           `,           components:{                school,                hello,                          }        })       //vue        new Vue({            template:'<app></app>',            el: "#root",            //局部注册组件            components:{                app,                         }                 });    </script></body></html>

 VueComponent

每次调用extend,都返回了一个VueComponent

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <script type="text/javascript" src="../js/vue.js"></script>    <title>Document</title></head><body>    <div id="root">        <!--组件标签-->        <school>        </school>        <hello>        </hello>    </div>    <div id="root2">    </div>    <script type="text/javascript">        Vue.config.productionTip = false;        //创建school组件        const school = Vue.extend({            template: `            <div>                <h3>schoolname:{{schoolname}}</h3>                 <h3>schoolage{{schoolage}}</h3>                 <button @click='show'>点击提示</button>            </div>            `,            data() {                return {                    schoolname: "atguigu",                    schoolage: 20,                }            },            methods: {                show() {                    console.log(this)//VueComponent实例对象  vc                    alert(this.schoolname);                }            },        });        //创建hello组件        const hello = Vue.extend({            template: `            <div>                <h3>hello:{{hello}}</h3>            </div>            `,            data() {                return {                    hello: "hello",                }            },        });        console.log(school);//一个构造函数        console.log(hello);//一个构造函数        console.log(school === hello);//false        new Vue({            el: "#root",            data: {            },            //局部注册组件            components: {                school: school,                hello:hello,            }        });    </script></body></html>

 Vue实例与组件实例

Vue生命周期中的组件化是什么

Vue生命周期中的组件化是什么

感谢你能够认真阅读完这篇文章,希望小编分享的“Vue生命周期中的组件化是什么”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯