vue基础教学(9)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、组件通讯

<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.接收的数据类型
Vue.js是一种用于构建用户界面的渐进式JavaScript框架。它允许开发者创建动态、交互式的Web应用程序,并以其简单易学著称。下面是一些关于Vue基础知识点: ### Vue 的核心概念 1. **声明式渲染**:通过将DOM元素绑定到JavaScript数据模型上,让视图自动更新以反映底层的数据变化。 2. **组件系统**:可以组合小而独立的功能模块(即组件),每个组件都有自己的HTML模板、样式以及逻辑代码。 ### 安装与初始化项目 你可以使用`<script>`标签直接引入CDN版Vue库开始学习;但对于实际开发来说,则推荐利用官方提供的CLI工具(`vue-cli`)快速搭建一个新的Vue应用工程。 ```bash npm install -g @vue/cli vue create hello-world # 创建新项目名为hello-world cd hello-world npm run serve # 启动本地服务器预览效果 ``` ### 基础语法要点 - `v-bind`: 动态地设置HTML属性值; - `v-on`: 监听用户的输入事件并触发相应的处理函数; - `v-model`: 实现双向数据绑定机制,在表单控件之间同步状态信息; - 组件化编程思想贯穿始终——包括但不限于自定义组件注册、props传参等高级特性。 ### 示例案例分析 假设我们要展示一个简单的计数器例子: ```html <div id="app"> <p>{{ message }}</p> <button v-on:click="counter += 1">点击增加</button> <p>当前数字是 {{ counter }}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script type="text/javascript"> new Vue({ el: &#39;#app&#39;, data() { return { message: &#39;欢迎来到我的Vue页面!&#39;, counter: 0, }; } }); </script> ``` 在这个示例中,“{{message}}”会显示文本内容“欢迎来到我的Vue页面!” 当我们按下按钮时,就会调用匿名回调函数使得内部变量counter加一然后实时刷新UI. 以上只是对Vue基础知识的一个概述,更多深入的内容还需要结合实践不断探索!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值