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 相关文章推荐
脚本收藏iframe
Jul 21 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
JS获取html元素的标记名实现方法
Oct 08 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
原生js实现无限循环轮播图效果
Jan 20 Javascript
JS闭包用法实例分析
Mar 27 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
Jul 29 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
python 快速排序代码
2009/11/23 Python
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Python实现简单多线程任务队列
2016/02/27 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
国贸专业个人求职信分享
2013/12/04 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
面料业务员岗位职责
2013/12/26 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python