vue 组件 全局注册和局部注册的实现


Posted in Javascript onFebruary 28, 2018

全局注册,注册的组件需要在初始化根实例之前注册了组件;

局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可用:

全局组件

js

Vue.component('tab-title',{
   props:['title'],
   template:'<li v-on:click="$emit(\'change\')">{{title}}</li>'
 })
 Vue.component('tab-content',{
   props:['content'],
   template:'<div>{{content}}</div>'
 })

局部组件demo:

html

<div id="app">
  <ul class="navTab">
   <li v-for="(navTab,index) in navTabs" is="tab-title" v-bind:info="navTab.text" v-bind:class="{active:navTab.isActive}" v-on:addactive="switchActive(index)"></li>
  </ul>
  <div class="tabContent">
   <div v-for="navTab in navTabs" is="tab-content" v-bind:content="navTab.tabContent" 
   v-bind:class="['tab-panel',{active:navTab.isActive}]" v-if="navTab.isActive"></div>
  </div>
  </div>

js

var app=new Vue({
      el: '#app',
     components: {
       'tab-title': {
        props:['info'],//接受父元素传递的参数
        template:'<li v-on:click="$emit(\'addactive\')">{{info}}</li>'//点击时传递通过$emit子元素传递给父元素调用 addactive方法(不能使用驼峰写法)
        },
       'tab-content':{
         props:["content"],
        template:'<div>{{content}}</div>'
       }
     },
     methods:{
       switchActive:function(index){
        for(var i=0;i<this.navTabs.length;i++){
         this.navTabs[i].isActive=false;
        }
        this.navTabs[index].isActive=true;
        
       }
     },
     data:{
      navTabs:[
       {
        text:"tab1",
        isActive:true,
        tabContent:'this is tab1 content'
       },
       {
        text:"tab2",
        isActive:false,
        tabContent:'this is tab2 content'
       },
       {
        text:"tab3",
        isActive:false,
        tabContent:'this is tab3 content'
       }
      ]
     }
    });

组件实例的作用域是孤立的。这意味着不能再子组件的模板内直接引用父组件的数据。要让子组件可以使用父组件的数据,我们需要通过子组件的props选项。

子组件要显式地用 props 选项声明它期待获得的数据

在模板中,要动态地绑定父组件的数据到字模板的props,与绑定到任何普通的HTMO特性相类似。就是使用 v-bind。每当父组件的数据变化时,该变化也会传递给子组件:

所有的vuejs组件都是被扩展的vue实例

每一个Vue实例都会代理这个实例的data属性对象里的所有的属性

所有的Vue实例本身保罗的属性和方法,都以$开头来区别,对应Vue.set

例如:

vm.$data

vm.$methods

vm.$watch

这个有利于和data属性对象的数据来区分

多有的指令都以v-xxx形式存在:

以上这篇vue 组件 全局注册和局部注册的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
比较详细的关于javascript中void(0)的具体含义解释
Aug 02 Javascript
JS俄罗斯方块,包含完整的设计理念
Dec 11 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
Jan 12 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
javascript history对象详解
Feb 09 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
详解JavaScript中typeof与instanceof用法
Oct 24 Javascript
JS替换字符串中指定位置的字符(多种方法)
May 28 Javascript
vue 自定义全局方法,在组件里面的使用介绍
Feb 28 #Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 #Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 #Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 #Javascript
浅析node应用的timing-attack安全漏洞
Feb 28 #Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 #Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 #Javascript
You might like
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
2016/12/13 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
小程序自定义日历效果
2018/12/29 Javascript
Python数据类型详解(二)列表
2016/05/08 Python
Python+django实现简单的文件上传
2016/08/17 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Python实现序列化及csv文件读取
2020/01/19 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Python偏函数实现原理及应用
2020/11/20 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
大学生职业规划前言模板
2013/12/27 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
优秀志愿者感言
2015/08/01 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
PyTorch的Debug指南
2021/05/07 Python