Vue 组件的挂载与父子组件的传值实例


Posted in Javascript onSeptember 02, 2020

1:将需要挂载的组件放置在component之中

Vue 组件的挂载与父子组件的传值实例

2:全局挂载在main.js之中

import Vue from 'vue'
import App from './App.vue'
import getTime from './component/child/getTime'

//全局注册 整个项目的组件都可以使用
//注册给整个vue 对象
//引入需要注册的全局组件

//在vue类的方法 component里面进行注册
Vue.component('v-times',getTime);
Vue.component('v-times',{
 template:"<div>{{msg}}</div>",//字符串的标签模板
 data(){ //当前模板的数据
  return {
   msg:"时间"
  }
 }
});
new Vue({
 el: '#app',
 render: h => h(App)
})

3:局部挂载至当前父组件之内

<script>
//组件在谁里面使用 在谁里面注册 这种注册方式叫做局部注册
//局部注册只能在父组件里使用
import topTitle from "./component/systemtoptitle";
import leftMenu from "./component/systemleftmenu";
import rightContent from "./component/systemrightcontent";
//注册组件
//注册完成之后使用组件
export default {
 name: "app",
 components: {
  //注册
  //常规写法键值写法
  "v-toptitle": topTitle,
  "v-leftmenu": leftMenu,
  "v-rightcontent": rightContent
  //简单写 topTitle leftMenu rightContent
 },
 data() {
  return {};
 }
};
</script>

4:父组件传值给子组件

父组件:

<template>
 <div id="toptitle">
  <!--logo子组件是toptitle的子组件-->
  <!--子组件接收值-->
  <v-logo :sysname="name"></v-logo>
 </div>
</template>
<script>
import logo from './child/logo'
export default{
 name:"toptitle ",
 components:{
  'v-logo':logo
 },
 data(){
  return {
   //比如下面的两个信息是后台返回的
   name:"学生信息管理",
   logo:"src/assets/logo.png"
  }
 }
}
</script>

子组件:

<template>
 <div id="logoinfo">
  <!--注意此处为:src-->
  <img class="logoimg" :src="logoimg" alt=""/>
  <span class="systemname">{{sysname}}</span>
 </div>
</template>
<script>
export default {
 //子组件调用父组件的值
 //1 简单写法
 //2 约束数据类型的写法 如果数据类型不一致 会报警告
 //3 如果父组件没有传值 走默认值
 name: "logoinfo",
 //props: ["logo", "sysname"],
 /* props:{
   'logoimg':String,
   'sysname':String
 }, */
 props:{
   'logoimg':{
     type:String,
     default:"src/assets/wanmou.jpg"
   },
   'sysname':String
 },
 data() {
  return {
   //子组件定义props属性接收父组件传递的数据
  };
 }
};
</script>

5:子组件调用父组件的值

子组件:

<template>
 <div id="logoinfo">
  <!--注意此处为:src-->
  <img class="logoimg" :src="logoimg" alt=""/>
  <span class="systemname">{{sysname}}</span>
 </div>
</template>
<script>
export default {
 //子组件调用父组件的值
 //1 简单写法
 //2 约束数据类型的写法 如果数据类型不一致 会报警告
 //3 如果父组件没有传值 走默认值
 name: "logoinfo",
 //props: ["logo", "sysname"],
 /* props:{
   'logoimg':String,
   'sysname':String
 }, */
 props:{
   logoimg:{
     type:String,
     default:"src/assets/wanmou.jpg"
   },
   sysname:String,
   parentinfo:Object
 },
 mounted() {
  //1 在子组件里获取整个父组件
  //子组件执行父组件的函数
  //let parent=this.parentinfo;
  //parent.childsend();

  //2 子组件获取父组件 内置方法
  let parentdata=this.$parent;
  console.log(parentdata);
 },
 data() {
  return {
   //子组件定义props属性接收父组件传递的数据
  };
 },
 methods: {
  sendmsg(){
   console.log("子组件函数");
  }
 }
}
</script>

父组件:

<template>
 <div id="toptitle">
  <!--logo子组件是toptitle的子组件  
  //父组件获取子组件的所有内容
  //使用ref获取虚拟的dom来获取子组件
  -->
  <!--子组件接收值-->
  <v-logo :parentinfo="this" ref="logolist" :sysname="name"></v-logo>
 </div>
</template>
<script>
import logo from './child/logo'
export default{
 name:"toptitle",
 components:{
  'v-logo':logo
 },
 mounted() {
  //组件挂载完的执行函数
  let logoinfo=this.$refs.logolist;
  //获取到的是整个子组件 父组件里面执行子组件的方法
  logoinfo.sendmsg();
 },
 data(){
  return {
   //比如下面的两个信息是后台返回的
   name:"学生信息管理",
   logo:"src/assets/logo.png"
  }
 },
 methods: {
  childsend(){
   console.log("父组件里面的函数");
  }
 }
}
</script>

补充知识:vue-router中的组件怎么传递参数

第一种方法params

{
   path: '/user/:userid',
   component: User
  },
<template>
<div>
<h2>{{userid}}</h2> // 
<h3>{{this.$route.params}}</h3>
</div>
</template>
<router-link :to='/user/+userid' tag="button">用户</router-link>
<router-view></router-view>

export default {
 name: 'App',
 data() {
  return {
   userid: 'lisi'
  }
 }
}

Vue 组件的挂载与父子组件的传值实例

第二种 query

{
   path: '/profile',
   component: Profile
  }
<template>
<div>
<h2>我是Profile</h2>
<h3>{{this.$route.query}}</h3>
</div>
</template>
<router-link :to="{path: '/profile', query: {
   name: 'hylls',
   age: 20,
   height: 1.77
  }}" tag="button">profile</router-link>
  <router-view></router-view>

Vue 组件的挂载与父子组件的传值实例

以上这篇Vue 组件的挂载与父子组件的传值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery操作Select 简单方便 一个js插件搞定
Nov 12 Javascript
判断控件是否已加载完成的代码
Feb 24 Javascript
js 获取子节点函数 (兼容FF与IE)
Apr 18 Javascript
基于JQUERY的多级联动代码
Jan 24 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
Sep 06 Javascript
JavaScript中使用document.write向页面输出内容实例
Oct 16 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
详解如何实现一个简单的Node.js脚手架
Dec 04 Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 Javascript
详解微信小程序的 request 封装示例
Aug 21 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
Jul 26 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 #Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 #Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
Sep 02 #Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 #Javascript
JS继承实现方法及优缺点详解
Sep 02 #Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 02 #Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 #Javascript
You might like
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
非常好的js代码
2006/06/27 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Python 合并拼接字符串的方法
2020/07/28 Python
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
什么是Remote Module
2016/06/10 面试题
资料员的岗位职责
2013/11/20 职场文书
酒店保洁主管岗位职责
2013/11/28 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
检讨书范文
2015/01/27 职场文书
国庆节主题班会
2015/08/15 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
德生2P3收音机开箱评测
2022/04/30 无线电