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 学习之旅 (3)
Feb 05 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
Apr 20 Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 Javascript
jQuery滚动条插件nanoscroller使用指南
Apr 21 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
JavaScript实现动态删除列表框值的方法
Aug 12 Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 Javascript
JS实现“隐藏与显示”功能(多种方法)
Nov 24 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 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中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
PHP实现微信发红包程序
2015/08/24 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python类及获取对象属性方法解析
2020/06/15 Python
python 如何将office文件转换为PDF
2020/09/22 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
高中军训感言200字
2014/02/23 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书