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 相关文章推荐
javascript正则表达式中参数g(全局)的作用
Nov 11 Javascript
datagrid框架的删除添加与修改
Apr 08 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 Javascript
Vue数据驱动模拟实现1
Jan 11 Javascript
基于jQuery实现弹幕APP
Feb 10 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
JavaScript 数组的进化与性能分析
Sep 18 Javascript
微信小程序框架wepy之动态控制类名
Sep 14 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
vue读取本地的excel文件并显示在网页上方法示例
May 29 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 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实现的ping端口函数实例
2014/11/12 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
详解Vue 方法与事件处理器
2017/06/20 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
Python GAE、Django导出Excel的方法
2008/11/24 Python
python发布模块的步骤分享
2014/02/21 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python读取图片任意范围区域
2019/01/23 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
护理专业毕业生推荐信
2013/10/31 职场文书
中专生自我鉴定
2013/12/17 职场文书
法律进学校实施方案
2014/03/15 职场文书
统计学教授推荐信
2014/09/18 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
新党员入党决心书
2015/09/22 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
小学三年级作文之写景
2019/11/05 职场文书