深入浅析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 animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
无刷新预览所选择的图片示例代码
Apr 02 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
javascript实现简单的省市区三级联动
May 14 Javascript
浅析JS动态创建元素【两种方法】
Apr 20 Javascript
前端微信支付js代码
Jul 25 Javascript
详解Vue2.x-directive的学习笔记
Jul 17 Javascript
Vue-cli中为单独页面设置背景色的实现方法
Feb 11 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
微信小程序实现星级评价
Nov 20 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
使用php来实现网络服务
2009/09/15 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
javascript 清除输入框中的数据
2009/04/13 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python内置函数reversed()用法分析
2018/03/20 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
syb养殖创业计划书
2014/01/09 职场文书
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技