Vue基础---- 组件化开发

Posted tusong1126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue基础---- 组件化开发相关的知识,希望对你有一定的参考价值。

基本结构:
◆1、组件化开发思想
◆2、组件注册
◆3、Vue调试工具用法
◆4、组件间数据交互
◆5、组件插槽
◆6、基于组件的案例
 
◆1、组件化开发思想
  优点:
    提高开发效率
    方便重复使用
    简化调试步骤
    提升整个项目的可维护性
    便于多人协同开发
 
◆2、组件注册
  2.1 全局组件
    1> 全局组件注册语法
    技术图片
    
    2> 组件用法
    技术图片
 
         3>  组件注册注意事项  
      1、组件参数的data值必须是函数
         2、组件模板必须是单个根元素
         3、组件模板的内容可以是模板字符串(``,因为放在一行内可能造成代码可读性差)
      4. 组件命名方式:
          短横线方式 Vue.component(‘my-component‘, { /* ... */ })
          驼峰方式 Vue.component(‘MyComponent‘, { /* ... */ })
    4> 具体使用  
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <button-counter></button-counter>
      <button-counter></button-counter>
      <button-counter></button-counter>
    </div>
    <script type="text/javascript" src="js/vue.js"></script>
    <script type="text/javascript">
      /*
      组件注册注意事项
        1、组件参数的data值必须是函数,
        之前实例化的时候是一个对象{},使用函数可以形成一个闭包环境,保证每一个组件都是拥有一份独立的数据
  2、组件模板必须是单个根元素
        <button @click="handle">点击了{{count}}次</button><button>测试</button> ---不行
        解决方法:<div><button @click="handle">点击了{{count}}次</button><button>测试</button></div>
  3、组件模板的内容可以是模板字符串
        ( ``,因为放在一行内,不直观造成代码可读性差)
*/ Vue.component("button-counter", { data: function () { return { count: 0, }; }, // template: ‘<div><button @click="handle">点击了{{count}}次</button><button>测试</button></div>‘, template: ` <div> <button @click="handle">点击了{{count}}次</button> <button>测试123</button> </div> `, methods: { handle: function () { this.count += 2; }, }, }); var vm = new Vue({ el: "#app", data: { }, }); </script> </body> </html>

 

  2.2 局部组件
    1> 局部组件注册语法
    技术图片
  
    2> 注意事项及代码
    
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <hello-world></hello-world>
    <hello-tom></hello-tom>
    <hello-jerry></hello-jerry>
    <test-com></test-com>
  </div>
  <script type="text/javascript" src="js/vue.js"></script>
  <script type="text/javascript">
    /*
      局部组件注册
        局部组件只能在注册他的父组件中使用
    */
    Vue.component(‘test-com‘,{    
      template: ‘<div>Test<hello-world></hello-world></div>‘,
      //全局组件中不可用,只能在注册他的父组件中使用  <div id="app"></div>
    });
    
    var HelloWorld = {
      data: function(){
        return {
          msg: ‘HelloWorld‘
        }
      },
      template: ‘<div>{{msg}}</div>‘
    };
    
    var HelloTom = {
      data: function(){
        return {
          msg: ‘HelloTom‘
        }
      },
      template: ‘<div>{{msg}}</div>‘
    };
    
    var HelloJerry = {
      data: function(){
        return {
          msg: ‘HelloJerry‘
        }
      },
      template: ‘<div>{{msg}}</div>‘
    };
    
    var vm = new Vue({
      el: ‘#app‘,
      data: {
        
      },
      components: {
        ‘hello-world‘: HelloWorld,
        ‘hello-tom‘: HelloTom,
        ‘hello-jerry‘: HelloJerry
      }
    });
  </script>
</body>
</html>

 

 ◆4、组件间数据交互
  4.1 父组件向子组件传值
 
  4.2 子组件向父组件传值
 
  4.3 兄弟组件间传值


 

以上是关于Vue基础---- 组件化开发的主要内容,如果未能解决你的问题,请参考以下文章

Vue 开发实战基础篇 # 8:如何触发组件的更新

Vue 开发实战学习笔记48篇(完结)

vue3基础练习

Vue 开发实战基础篇 # 13:如何优雅地获取跨层级组件实例(拒绝递归)

Vue3基础知识总结

Vue3基础知识总结