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 相关文章推荐
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
javascript中拼接HTML字符串的最快、最好的方法
Jun 07 Javascript
jQuery插件实现控制网页元素动态居中显示
Mar 24 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
JSP基于Bootstrap分页显示实例解析
Jun 12 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
canvas红包照片实例分享
Feb 28 Javascript
Node.js安装配置图文教程
May 10 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
PHP.vs.JAVA
2016/04/29 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python callable()函数用法实例分析
2018/03/17 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
详解pandas赋值失败问题解决
2020/11/29 Python
python实现控制台输出颜色
2021/03/02 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
学期个人工作总结
2015/02/13 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
安全生产培训心得体会
2016/01/18 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
如何利用Python实现一个论文降重工具
2021/07/09 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript