深入浅析Vue全局组件与局部组件的区别


Posted in Javascript onJune 15, 2018

1、组件声明

<!-- 全局组件模板father模板 --> 
<template id="father"> 
  <div> 
     <h3>这是{{name}}</h1> 
     <div> 
       <p>这是{{data}}</p> 
     </div> 
  </div> 
</template> 

var FATHER = { 
  template: "#father", 
  data: function() { 
     return { 
       name: "一个全局组件-模板-", 
       data: "数据:18892087118" 
     } 
   } 
 };

2、组件注册

Vue.component('father', FATHER);

3、组件挂载

<h5>全局组件1</h5> 
<father></father>

4、组件实例

<!DOCTYPE html> 
<html> 
<head> 
  <title>vue2.0 --- 局部组件与全局组件</title> 
</head> 
<body> 
  <h3>vue2.0局部组件与全局组件</h3> 
  <div id='app'> 
    <h5>局部组件</h5> 
    <fatherlocal></fatherlocal> 
    <hr> 
    <h5>全局组件1</h5> 
    <father></father> 
    <hr> 
    <h5>全局组件2</h5> 
    <child :fromfather='giveData'></child> 
  </div> 
  <!-- 局部组件模板fatherlocal --> 
  <template id="father-local"> 
    <div> 
      <h3>这是{{name}}</h1> 
      <div> 
        <p>这是{{data}}</p> 
      </div> 
    </div> 
  </template> 
  <!-- 全局组件模板father --> 
  <template id="father"> 
    <div> 
      <h3>这是{{name}}</h1> 
      <div> 
        <p>这是{{data}}</p> 
      </div> 
    </div> 
  </template> 
  <template id="child"> 
    <div> 
      <h3>这是{{name}}</h3> 
      <div> 
        <p>{{cmsgtwo}}</p> 
        <p>{{cmsg}}</p> 
        <p>{{fromfather}}</p> 
        <p>{{fromfather.fmsg}}</p> 
        <p><input type="button" value="按钮" @click=" "></p> 
      </div> 
    </div> 
  </template> 
  <script src="vue_2.2.2_vue.min.js"></script> 
  <script type="text/javascript"> 
    // 定义组件 
    var FATHER = { 
      template: "#father", 
      data: function() { 
        return { 
          name: "一个全局组件-模板-", 
          data: "数据:18892087118" 
        } 
      } 
    }; 
    var CHILD = { 
      template: "#child", 
      data: function() { 
        return { 
          name: "子组件", 
          cmsg: "子组件里的第一个数据", 
          cmsgtwo: "子组件里的第二个数据" 
        } 
      }, 
      methods: { 
        change: function() { 
          this.fromfather.fmsg = "子组件数据被更改了" 
        } 
      }, 
      mounted: function() { 
        this.cmsg = this.fromfather; 
      }, 
      props: ["fromfather"], 
    }; 
    // 注册组件 
    Vue.component('father', FATHER); 
    Vue.component("child", CHILD); 
    var vm = new Vue({ 
      data: { 
        fmsg: "data里的数据", 
        giveData: { 
          fmsg: "这是父组件里的数据" 
        } 
      }, 
      methods: {}, 
      // 局部组件fatherlocal 
      components: { 
        'fatherlocal': { 
          template: '#father-local', 
          data: function() { 
            return { 
              name: "局部-父组件", 
              data: "局部-父组件里的数据" 
            } 
          } 
        } 
      } 
    }).$mount('#app'); 
  </script> 
</body> 
</html>

6、特殊的属性is

当使用 DOM 作为模板时 (例如,将el选项挂载到一个已存在的元素上),你会受到 HTML 的一些限制,因为 Vue 只有在浏览器解析和标准化 HTML 后才能获取模板内容。尤其像这些元素<ul>,<ol>,<table>,<select>限制了能被它包裹的元素,而一些像<option>这样的元素只能出现在某些其它元素内部。

自定义组件<my-row>被认为是无效的内容,因此在渲染的时候会导致错误。变通的方案是使用特殊的is属性:

<body>  
  <div id="app1">  
    <ul>   
      <li is="my-component"></li>  
    </ul>  
  </div>  
  <script>  
    Vue.component("my-component",{   
      template:"<h1>{{message}}</h1>",   
      data:function(){    
        return {     
          message:"hello world"    
        }   
      }  
    });  
    new Vue({   
      el:"#app1"  
      })  
  </script>  
</body>

总结

以上所述是小编给大家介绍的Vue全局组件与局部组件的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery 小练习(实例代码)
Aug 07 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
js点击button按钮跳转到另一个新页面
Oct 10 Javascript
javascript数组详解
Oct 22 Javascript
JS控制伪元素的方法汇总
Apr 06 Javascript
DWR中各种java方法的调用
May 04 Javascript
JS组件Bootstrap Table布局详解
May 27 Javascript
angular使用bootstrap方法手动启动的实例代码
Jul 18 Javascript
react 创建单例组件的方法
Apr 26 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 Javascript
react-native android状态栏的实现
Jun 15 #Javascript
JS实现监控微信小程序的原理
Jun 15 #Javascript
vue .sync修饰符的使用详解
Jun 15 #Javascript
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 #Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 #Javascript
vue和webpack安装命令详解
Jun 15 #Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 #Javascript
You might like
PHP里的中文变量说明
2011/07/23 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
python 文件操作删除某行的实例
2017/09/04 Python
Python3计算三角形的面积代码
2017/12/18 Python
NumPy中的维度Axis详解
2019/11/26 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
师范生个人推荐信
2013/11/29 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
实验教师岗位职责
2014/02/13 职场文书
工程项目建议书范文
2014/03/12 职场文书
小学生环保倡议书
2014/05/15 职场文书
企业文化标语大全
2014/06/10 职场文书
表扬稿范文
2015/01/17 职场文书
实习推荐信格式模板
2015/03/27 职场文书
文化大革命观后感
2015/06/17 职场文书
学生会工作感言
2015/08/07 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫