• 【vue 组件化开发 一 】组件基本使用、全局和局部组件、父组件和子组件的区别


    目录

    前言:

    完整内容请关注:

    一、组件的基本使用

    二、全局组件和局部组件

    全局注册,通过 Vue.component

    局部注册,通过 components:{}

    全局组件

    局部组件

    三、父组件和子组件的区别


    前言:

    完整内容请关注:

    (1条消息) Vue 的基础学习_小余努力搬砖的博客-CSDN博客icon-default.png?t=M666https://blog.csdn.net/yzq0820/category_11934130.html?spm=1001.2014.3001.5482

    一、组件的基本使用

    简单的组件化使用例子

    组件是可复用的 Vue 实例,且带有一个名字:

    在这个例子中是button-counter 。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用:

    template中是组件的DOM元素内容。

    使用组件

    1. <div id="app">
    2. <button-counter>button-counter>
    3. div>
    4. <script src="./vue.js">script>
    5. <script>
    6. Vue.component('button-counter',{
    7. data:function(){ //必须是函数
    8. return{
    9. count:0
    10. }
    11. },
    12. template:'',//只能有一个根元素
    13. methods:{
    14. handle:function(){
    15. this.count++
    16. }
    17. }
    18. })
    19. const vm = new Vue({
    20. el:"#app",
    21. data(){
    22. return{
    23. }
    24. }
    25. })
    26. script>

    二、全局组件和局部组件

    全局注册,通过 Vue.component

    局部注册,通过 components:{}

    全局组件

    ​全局组件,可以在多个vue实例中使用,类似于全局变量

    ​使用Vue.component('HelloWorld', {data(){}})方式注册,直接使用调用。HelloWorld是全局组件的名字,{data(){}}是定义的组件对象。

     

    第二个全局组件通过

    实现了在渲染

    1. "app">
    2. <button-counter>button-counter>
    3. <hello-world>hello-world>
  • <script src="./vue.js">script>
  • <script>
  • Vue.component('HelloWorld',{
  • data(){
  • return{
  • msg:"HelloWorld"
  • }
  • },
  • template:`
    {{msg}}
    `
  • })
  • Vue.component('button-counter',{
  • data:function(){ //必须是函数
  • return{
  • count:0
  • }
  • },
  • template:`
  • `,
  • //只能有一个根元素
  • methods:{
  • handle:function(){
  • this.count++
  • }
  • }
  • })
  • const vm = new Vue({
  • el:"#app",
  • data(){
  • return{
  • }
  • }
  • })
  • script>
  • 局部组件

    ​ 局部组件,只能在当前vue实例挂载的对象中使用,类似于局部变量,有块级作用域

    ​ 使用方式与全局变量一样,直接使用调用

    1. "app">
    2. <hello-world>hello-world>
    3. <hello-tom>hello-tom>
    4. <hello-jerry>hello-jerry>
  • <script src="./vue.js">script>
  • <script>
  • let HelloWorld ={
  • data:function(){
  • return{
  • msg:'HelloWorld'
  • }
  • },
  • template:`
    {{msg}}
    `
  • };
  • let HelloTom ={
  • data:function(){
  • return{
  • msg:'HelloTom'
  • }
  • },
  • template:`
    {{msg}}
    `
  • };
  • let HelloJerry ={
  • data:function(){
  • return{
  • msg:'HelloJerry'
  • }
  • },
  • template:`
    {{msg}}
    `
  • }
  • const vm = new Vue({
  • el:"#app",
  • data:{
  • },
  • components:{
  • 'hello-world': HelloWorld,
  • 'hello-tom': HelloTom,
  • 'hello-jerry': HelloJerry,
  • }
  • })
  • script>
  • 三、父组件和子组件的区别

    ​ 上述代码中定义了两个组件对象cpn1cpn2,在组件cpn2中使用局部组件注册了cpn1,并在template中使用了注册的cpn1,然后在vue实例中使用注册了局部组件cpn2,在vue实例挂载的div中调用了cpn2cpn2cpn1形成父子组件关系。

    注意:组件就是一个vue实例,vue实例的属性,组件也可以有,例如data、methods、computed等。

    1. <div id="app">
    2. <cpn2>cpn2>
    3. div>
    4. <script src="../js/vue.js">script>
    5. <script>
    6. // 1.创建组件构造器对象
    7. const cpn1 = Vue.extend({
    8. template:`
    9. <div>
    10. <h2>标题1h2>
    11. <p>组件1p>
    12. div>`
    13. })
    14. // 组件2中使用组件1
    15. const cpn2 = Vue.extend({
    16. template:`
    17. <div>
    18. <h2>标题2h2>
    19. <p>组件2p>
    20. <cpn1>cpn1>
    21. div>`,
    22. components:{
    23. cpn1:cpn1
    24. }
    25. })
    26. const app = new Vue({
    27. el:"#app",
    28. components:{//局部组件创建
    29. cpn2:cpn2
    30. }
    31. })
    32. script>

  • 相关阅读:
    .NET周刊【5月第4期 2024-05-26】
    虹科新闻 | 虹科电子与 Mend 正式建立合作伙伴关系
    mongostat性能分析
    自动驾驶领域中的CMS系统应用探讨
    协议定制 + Json序列化反序列化
    ts 枚举类型原理及其应用详解
    【实践篇】一次Paas化热部署实践分享
    好心情精神心理科医生:精神病人为何会出现幻觉?
    VLAN相关知识点
    好像知道的人不多?Spring容器关闭执行销毁方法有几种,看完MQ源码我才知道SmartLifecycle最快
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126165227