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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
javascript js cookie的存储,获取和删除
Dec 29 Javascript
JS简单循环遍历json数组的方法
Apr 22 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 Javascript
使用vue.js编写蓝色拼图小游戏
Mar 17 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
jQuery pagination分页示例详解
Oct 23 jQuery
利用原生JavaScript实现造日历轮子实例代码
May 08 Javascript
JS实现的排列组合算法示例
Jul 16 Javascript
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
小程序实现筛子抽奖
May 26 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采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php简单的上传类分享
2016/05/15 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
JavaScript 的继承
2011/10/01 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
python基于opencv 实现图像时钟
2021/01/04 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
电钳专业个人求职信
2014/01/04 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
五好家庭事迹材料
2014/12/20 职场文书
公司放假通知怎么写
2015/04/15 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python