时间:2021-05-26
1:将需要挂载的组件放置在component之中
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':{ 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:{ 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' } }}第二种 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 组件的挂载与父子组件的传值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了vue组件通信传值操作。分享给大家供大家参考,具体如下:父子组件通信:子组件我是子组件一{{parentMessage}}exportdefaul
本文实例讲述了Vue常用传值方式、父传子、子传父及非父子。分享给大家供大家参考,具体如下:父组件向子组件传值是利用props子组件中的注意事项:props:[‘
本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下:1.如何创建组件1.新建一个组件,如:在goods文件夹下新建goodsList.vue
前言vuex主要是是做数据交互,父子组件传值可以很容易办到,但是兄弟组件间传值,需要先将值传给父组件,再传给子组件,异常麻烦。下面这篇文章就来给大家介绍下vue
一.父子组件传值父子组件传值{{total}}//父组件向子组件传值用props,加:号后传递的为js表达式,示例中则为数字,不加:号代表的是字符串varcou