vue全局组件与局部组件使用方法详解


Posted in Javascript onMarch 29, 2018

vue全局/局部注册,以及一些混淆的组件

main.js入口文件的一些常用配置, 在入口文件上定义的public.vue为全局组件,在这里用的是pug模版 .wraper 的形式相当于<div class=wraper></div>

main.js文件

**main.js入口文件的内容**

import Vue from 'vue'
import App from './App'
import router from './router'
// 引入公用组件的vue文件 他暴漏的是一个对象
import cpublic from './components/public'

Vue.config.productionTip = false

// 注册全局组件-要在vue的根事咧之前
// 参数 1是标签名字-string 2是对象 引入外部vue文件就相当与一个对象
Vue.component('public', cpublic)
// 正常注册全局组件的时候,第二个参数应该是对象。
Vue.component('public1', {
 template: '<div>正常的组件模式</div>'
})
/* eslint-disable no-new */
// 生成vue 的根实例;创建每个组件都会生成一个vue的事咧
new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})

public.vue 组件为定义的全局组件在任何组件里都可以直接使用,不需要在vue实例选项components上在次定义,也不需要再次导入文件路径。

**public.vue的组件内容**


<template lang="pug">
.wrapper
 slot(text="我是全局组件") {{name}}

</template>

<script>
export default {
 name: 'HelloWor',
 // 全局组件里data属性必须是函数,这样才会独立,
 // 在组件改变状态的时候不会影响其他组件里公用的这个状态
 data () {
  return {
   name: '我是全局组件'
  }
 }
}
</script>

<style scoped>

</style>

parent.vue组件里,用到了public全局组件以及其他的子组件

parent.vue组件

<template lang="pug">
.wrap
 .input-hd
  .title 名称:
  input.input(type="text",v-model="msg",placeholder="请输入正确的值",style="outline:none;")
 .content-detail
  .content-name 我是父组件的内容 
 children(:msg='msg', number='1')
 public
 router-link(to='/parent/children2') 第二个子组件
 router-view
</template>

<script>
import children from './children'
// children(:msg='msg', number='1')在组件里 也可以传递自定义的属性,但是是字符串类型,

export default {
 name: 'HelloWor',
 data () {
  return {
   // 通过prop将数据传递到子组件,并与v-model想对应的输入框相互绑定。
   msg: '这个是父组件的-prop-数据'
  }
 },
 components: {
  children
 }
}
</script>

<style scoped>
.wrap {
}
.input-hd {
 display: flex;
 flex-direction: row;
 align-items: center;
 height: 70px;
}
</style>

children.vue是parent.vue的子组件,但是只在parent.vue作用域里可用

<template lang="pug">
.wrapper
 slot(text="我是子组件的text") 我是子组件的内容
 .name {{ msg }} {{ number }}
</template>

<script>
export default {
 name: 'HelloWor',
 // 接受的时候是用props接受,数组的形式,里面是字符串的形式。
 // 也可以传入普通的字符串
 // 在子组件中,props接受到的状态当作vue的实例属性来使用
 props: [ 'msg', 'number' ]
}
</script>

<style scoped>

</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过javascript设置css属性的代码
Dec 28 Javascript
为JavaScript添加重载函数的辅助方法
Jul 04 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
Puppeteer环境搭建的详细步骤
Sep 21 Javascript
基于vue和react的spa进行按需加载的实现方法
Sep 29 Javascript
vue使用Font Awesome的方法步骤
Feb 26 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
javascript实现文件拖拽事件
Mar 29 #Javascript
vue 父组件调用子组件方法及事件
Mar 29 #Javascript
vue.js element-ui tree树形控件改iview的方法
Mar 29 #Javascript
Vue 源码分析之 Observer实现过程
Mar 29 #Javascript
vue 实现全选全不选的示例代码
Mar 29 #Javascript
Angular开发实践之服务端渲染
Mar 29 #Javascript
使用vue2实现购物车和地址选配功能
Mar 29 #Javascript
You might like
php中将网址转换为超链接的函数
2011/09/02 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
详解微信UnionID作用
2019/05/15 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
python 获取字符串MD5值方法
2018/05/29 Python
python反转列表的三种方式解析
2019/11/08 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
Python打印不合法的文件名
2020/07/31 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
python raise的基本使用
2020/09/10 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
Linux的文件类型
2016/07/05 面试题
幼儿园门卫岗位职责
2014/02/14 职场文书
班级年度安全计划书
2014/05/01 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
会计工作态度自我评价
2015/03/06 职场文书