vue基础教学(9)

这篇博客详细讲解了Vue.js中的组件通讯、ref的使用(包括基本使用和在组件上的应用)、is的两种用法,以及插槽的三大类型——默认插槽、具名插槽和作用域插槽,重点阐述了插槽在提升组件灵活性方面的关键作用。
摘要由CSDN通过智能技术生成

一、组件通讯

<body>
		<div id="app">
			<!-- 父组件 -->
			<h2>子组件</h2>
			<cpn :number1="num1" :number2="num2" @num1change="num1Change" @num2change="num2Change"></cpn>
			<h2>父组件</h2>
			<h4>num1:{
  {num1}}</h4>
			<input type="text" v-model="num1" />
			<h4>num2:{
  {num2}}</h4>
			<input type="text" v-model="num2" />
		</div>

		<!--  子组件 -->
		<template id="cpn">
			<div>
				<h4>dnumber1:{
  {dnumber1}}</h4>
				<h4>number1:{
  {number1}}</h4>
				<input type="text" v-model="dnumber1" />
				<h4>dnumber2:{
  {dnumber2}}</h4>
				<h4>number2:{
  {number2}}</h4>
				<input type="text" v-model="dnumber2" />
			</div>
		</template>
		<script src="vue.js"></script>
		<script>
			const cpn = {
				template: '#cpn',
				data() {
					return {
						dnumber1: this.number1,
						dnumber2: this.number2
					}
				},
				props: {
					number1: {
						type: [Number, String]
					},
					number2: {
						type: [Number, String]
					}
				},
				watch: {
					number1(n) {
						this.dnumber1 = n * 100
					},
					number2(n) {
						this.dnumber2 = n * 100
					},
					dnumber1(n) {
						this.$emit('num1change', n / 100)
					},
					dnumber2(n) {
						this.$emit('num2change', n / 100)
					},
				}
			}
			const app = new Vue({
				el: "#app",
				data() {
					return {
						num1: 1,
						num2: 2
					}
				},
				components: {
					cpn
				},
				methods: {
					num1Change(val) {
						this.num1 = val
					},
					num2Change(val) {
						this.num2 = val
					},
				},
				computed: {

				}
			})

			//1.尽量不要直接使用props里面的值进行页面渲染
			//2.接收的数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值