Vue入门(二十八)

目录

todolist之基本结构——实现todolist各个组件之间的参数传递

开始编写代码

把输入框的内容传递给父组件

代码(NavHeader.vue)

效果

父组件接收子组件传递过来的数据

代码(HomeView.vue)

父组件将接收的数据传递给子组件

父组件获取vuex中定义的数据list

代码(HomeView.vue)

父组件将获取的list传递给子组件

代码(HomeView.vue)

子组件接收父组件的传值代码(NavMain.vue) 

效果

子组件接收父组件的传值代码(NavFooter.vue)

效果

视频学习地址


todolist之基本结构——实现todolist各个组件之间的参数传递

开始编写代码

        准备好上一讲的代码

把输入框的内容传递给父组件

代码(NavHeader.vue

		setup(props, ctx) {
			let value = ref('')
			// 按回车确认
			let enter = () => {
				// 把输入框的内容传递给父组件
				ctx.emit('add', value.value)
				// console.log(value.value);
			}
			return {
				value,
				enter
			}
		},

效果

父组件接收子组件传递过来的数据

代码(HomeView.vue

	import {
		defineComponent,
		ref
	} from 'vue'
		setup() {
			let value = ref('')
			let add = (val) => {
				value.value = val
				console.log(val);
			}
			return {
				add,
				value
			}
		}

父组件将接收的数据传递给子组件

父组件获取vuex中定义的数据list

代码(HomeView.vue

	import {
		defineComponent,
		ref,
		computed
	} from 'vue'
	import {
		useStore
	} from 'vuex'
		setup() {
			let store = useStore()
			let list = computed(() => {
				return store.state.list
			})
			let value = ref('')
			let add = (val) => {
				value.value = val
				console.log(val);
			}
			return {
				add,
				value,
				list
			}
		}

父组件将获取的list传递给子组件

代码(HomeView.vue

<template>
  <div>
    <nav-header @add='add'></nav-header>
    <nav-main :list='list'></nav-main>
    <nav-footer :list='list'></nav-footer>
  </div>
</template>

子组件接收父组件的传值代码(NavMain.vue) 

export default defineComponent({
  name: 'navMain', // 组件名称
  props: {
    list: {
      type: Array,
      required: true
    }
  },
  setup() {
    // 删除任务
    let del = (item, index) => {
      console.log(item);
      console.log(index);
    }
    return {
      del
    }
  }
	})

效果

子组件接收父组件的传值代码(NavFooter.vue

	export default defineComponent({
		name: 'navFooter', // 组件名称
		props: {
			list: {
				type: Array,
				required: true
			}
		},
		setup() {
			let isComplete = ref(1)
			// 清除已完成
			let clear = () => {
				console.log('clear');
			}
			return {
				isComplete,
				clear
			}
		}
	})
<div>
  已完成{{isComplete}} / 全部{{list.length}}
</div>

效果


视频学习地址

课程导学,vue3.0实现todolist 教程-慕课网 (imooc.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值