IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue组件通信以及.sync修饰符的使用 -> 正文阅读

[JavaScript知识库]Vue组件通信以及.sync修饰符的使用


前言

最近使用到Vue中的.sync修饰符,本文对.sync用法进行说明,并使用这次契机复习Vue的组件之间通信方式。


一、Vue的组件通信方式

Vue组件的作用域是相互独立的,如果组件之间需要协同完成某些任务,就需要进行组件之间的通信,一般来说组件之间可以有以下几种方式:父子、爷孙、兄弟。

1.1 props/$emit

这是最常用的方式,其使用场景为父子组件之间进行通信。具体的方法在下面的Vue的.sync修饰符中有详细说明,父组件通过v-bind向子组件传递数据,子组件使用props进行接受,并通过$emit自定义事件向父组件传递数据。

1.2 Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。这里的状态指的是数据。
单向数据流示意图:状态自管理应用包括三个部分:(1)状态:驱动应用的数据源。(2)视图:以声明的方式将状态映射到视图。(3)操作:响应在视图上的用户输入导致的状态变化。
在这里插入图片描述
Vuex架构图

在这里插入图片描述

二、Vue的.sync修饰符

2.1 父组件向子组件传递数据

<div id="app">
<document
:title="title"
></document>
</div>

data(){
return {title:'初始标题'}
}

2.2 子组件使用props接收父组件的数据

子组件使用props接收父组件传递过来的数据,如果想要改变该数据,最直观的方法是写一个函数,直接进行更改:

props:{
title:{type:String}
}

methods:{
changeTitle(){
this.title = '新标题'
}
}

使用这种方法虽然能进行改变,但是控制台会报错,不建议修改父组件传递过来的数据,因为会导致数据修改来源不明的问题。改进方法:子组件派发一个自定义事件,将想要修改的值传递过去,父组件监听该事件,并接收该值,再修改父组件中的数据。
父组件:

<div id="app">
<document
:title="title"
@update:title="title=$event"
></document>
</div>

data(){
return {title:'初始标题'}
}

子组件:

props:{
title:{type:String}
}

methods:{
changeTitle(){
this.$emit('update:title', '新标题') 
}
}

简写方式:使用.sync修饰符代替事件的派发和监听,以及父组件中数据的改变,简化代码,实现父子组件的双向绑定,在传递对象的时候,简化就更加明显了,只需要在要传递的对象加上.sync修饰符,然后子组件不需要做任何改变。因此在需要进行父子组件双向绑定的时候,使用.sync修饰符。
父组件:

<div id="app">
<document
:title="title"
@update:title="title=$event"
></document>

<document
:title.sync="title"
></document>
</div>

data(){
return {title:'初始标题'}
}

子组件不需要改变。


总结

本文主要介绍了Vue组件之间通信的两种最常用的方式,以及.sync的使用来简化父子组件之间的通信。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-26 15:16:28  更:2022-05-26 15:17:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 -2025/5/16 5:38:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码