首页
学习
活动
专区
圈层
工具
发布

Vue 组件(三):关于单向数据流的简单理解

,但是我们试图通过子组件的 v-model 去改变这个 prop,也就是试图通过子组件直接去改变父组件的数据(而不是通过发送事件的方式),这是不允许的,因为 Vue 是单向数据流 —— 也就是说,数据总是从父组件传到子组件...,子组件没有权利修改父组件传过来的数据,只能请求父组件对原始数据进行修改。...这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。 但是,很多时候我们又确实要操作这个数据,那么应该怎么办呢?...,不会影响到父组件数据;第二个方法,注意 trim() 会返回一个处理完成后的新字符串,同样不会影响到父组件数据(原字符串)。...还要注意一个问题: 注意在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变这个对象或数组本身将会影响到父组件的状态。

3.4K62
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【编程鹿】学Vue.js这一篇就够了「万字学会|通俗易懂」上篇

    mounted生命周期函数 可以发起后端数据请求,取回数据 可以接收页面之间传递的参数 可以子组件向父组件传递参数等 指令 什么是指令?...父向子传递 父组件使用子组件时,自定义属性(属性名任意,属性值为要传递的数据) 子组件通过props接收父组件属性 父组件使用子组件,并自定义了title属性: 使用子组件,同时传递title属性--> 父组件传递的消息"/> 组件中接收的属性 type:限定父组件传递来的必须是数组 default:默认值 required:是否必须 items:是要接收的属性名称 我们在父组件中使用它: 将父组件的函数绑定到子组件上: num: {{num}} <counter :count="num" @inc="

    12.9K20

    Vue2向Vue3过渡,持续记录

    } 2.插槽选择器:slotted() 默认情况下,作用域样式不会影响到 渲染出来的内容,因为它们被认为是父组件所持有并传递进来的。...> 13.通过props传递一个响应式数据 传递的props属性,对于基础类型和对象的引用修改时都会报错,但是修改对象的值是可以的,并且父组件会保持对这个属性的响应。...25.组件间通信总结 props(父传子)、emit(子传父)、inject/provide(父子孙)、状态管理器(全局) 如果子组件需要共同操作和使用一项数据,这想数据应属于父组件的数据。...子组件不应该直接修改父组件的数据,而是由父组件提供修改的方法,通过自定义事件传递给子组件,Vue通过inject响应式数据,实现所有子组件共同响应一项数据。同样的provide也可以直接传递方法。...vue计算属性返回的是一个对象、或者数组的时候,修改这个对象的属性的时候不会触发set;如果是基础数据类型(返回的是数组或对象的基本数据类型的属性),才会触发set; 36.使用异步组件?

    6.6K40

    Electron + Vue跨平台桌面应用开发实战教程(三)

    其实FileEdit组件就是基于mavon-editor做了一些简单的业务封装,加入了一个标题输入框,它只是一个充当中间人的组件,负责传递数据而已,那么这个时候我们可以使用v-bind=" ?...不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以变更父组件,且在父组件和子组件都没有明显的变更来源。”...$emit('update:title', newValue) 单向数据流 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行...这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。 额外的,每次父级组件发生变更时,子组件中所有的 prop 都将会刷新为最新的值。...以上为 vue 官方的对于单向数据流的解释,大家可以在官网详细看看:https://cn.vuejs.org/v2/guide/components-props.html 因为单向数据流的原因,我们组件内的标题栏组件

    1.6K20

    重学巩固你的Vuejs知识体系(上)

    组件化开发: 什么是组件化,Vue组件化开发思想 注册的步骤 全局和局部组件 父组件和子组件 注册组件语法糖 模板的分离写法 组件的其他属性 父级向子级传递 子级向父级传递 父子组件的访问 非父子组件通信...当我们选中option中的一个时,会将它对应的value赋值到mySelect中。 多选,可以选中多个值。v-model绑定的是一个数组。...通过props向子组件传递数据 通过事件向父组件发送消息 props基本用法 在组件中,使用props来声明从父级接收到的数据 props的值: 字符串数组,数组中的字符串就是传递时的名称。...$emit('item-click',item) props用于父组件向子组件传递数据,还有一种比较常见的是子组件传递数据或事件到父组件中。 自定义事件: 在子组件中,通过$emit()来触发事件。...父组件访问子组件,使用children或者refs 子组件访问父组件,使用$parent 对于$children的访问: this.$children是一个数组类型,它包含所有子组件对象。

    5.3K10

    16 处理表单数据与父子组件之间的数据交换

    vue获取表单输入的数据,是通过被动的方式。在vue组件有输入操作时,主动将数值绑定到data变量上;在提交表单前,从data数据源取得表单数据。...checked2的数据类型是一个数组。 ? 4,单选按钮radio 组件,都可以以一种自定义组件的方式使用之。 父子组件的表单数据交换 在vue开发中我们经常会需要定义一个子组件,然后在这个子组件中获取的表单数据,需要往父组件传递。...使用这种sync模式,假设属性为xxx,要求为: 1,在子组件中当属性变化时,主动派发一个“update:xxx”事件,并附带xxx的值 2,在父组件中,使用:xxx.sync将数据双向绑定到一个data...这样在父组件中,子组件就被装扮成了和其它vue表单组件一样了,也可以直接使用v-model进行双向绑定了。

    3K10

    重学巩固你的Vuejs知识(上)

    组件化开发: 什么是组件化,Vue组件化开发思想 注册的步骤 全局和局部组件 父组件和子组件 注册组件语法糖 模板的分离写法 组件的其他属性 父级向子级传递 子级向父级传递 父子组件的访问 非父子组件通信...单选,只能选择一个值,v-model绑定的是一个值。当我们选中option中的一个时,会将它对应的value赋值到mySelect中。 多选,可以选中多个值。v-model绑定的是一个数组。...通过props向子组件传递数据 通过事件向父组件发送消息 props基本用法 在组件中,使用props来声明从父级接收到的数据 props的值: 字符串数组,数组中的字符串就是传递时的名称。...$emit('item-click',item) props用于父组件向子组件传递数据,还有一种比较常见的是子组件传递数据或事件到父组件中。 自定义事件: 在子组件中,通过$emit()来触发事件。...父组件访问子组件,使用children或者refs 子组件访问父组件,使用$parent 对于$children的访问: this.$children是一个数组类型,它包含所有子组件对象。

    3.9K40

    9个Vue开发技巧助力成为更好的工程师

    一般适合只依赖于外部数据的变化而变化的组件,因其轻量,渲染性能也会有所提高。 组件需要的一切都是通过 context 参数传递。它是一个上下文对象,具体属性查看文档[2]。...{{item.title}} {{item.content}} 父组件使用...自定义组件双向绑定 组件 model 选项: 允许一个自定义组件在使用 v-model 时定制 prop 和 event。...默认情况下,一个组件上的 v-model 会把 value 用作 prop 且把 input 用作 event,但是一些输入类型比如单选框和复选框按钮可能想使用 value prop 来达到不同的目的。...监听组件生命周期 通常我们监听组件生命周期会使用 $emit ,父组件接收事件来进行通知 子组件 export default { mounted() { this.

    4.3K20

    vue组件引用传值的最佳实践

    下述组件传值指引用类型(数组或对象)传值。 准备:单向数据流 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。...这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。 额外的,每次父级组件发生变更时,子组件中所有的 prop 都将会刷新为最新的值。...这个 prop 用来传递一个初始值;这个子组件接下来希望将其作为一个本地的 prop 数据来使用。...().toLowerCase() } } 注意在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变变更这个对象或数组本身将会影响到父组件的状态...总结 纯展示 直接使用父组件属性,不会有副作用!

    2K31

    用Typescript 的方式封装Vue3的表单绑定,支持防抖等功能。

    Vue3 的父子组件传值、绑定表单数据、UI库的二次封装、防抖等,想来大家都很熟悉了,本篇介绍一种使用 Typescript 的方式进行统一的封装的方法。...let _value = props[key] 定义一个内部变量,在用户输入字符的时候保存数据,用于绑定组件,等延迟后再提交给父组件。...使用方法 封装完毕,在组件里面使用就非常方便了,只需要一行即可。 先做一个父组件,加载各种子组件做一下演示。...type="daterange" 的时候,v-model 是一个数组,而后端数据库的设置,一般是两个字段,比如 startDate、endDate,需要提交的也是对象形式,这样就需要在数组和对象之间做转换...TS 的尴尬 可能你会注意到,上面的例子没有使用 colName 属性,而是直接传递字符层的参数。 因为 TS 只能做静态检查,不能做动态检查,直接写字符串是静态的方式,TS可以检查。

    1.3K10

    Vue2.组件通信

    父子通信 父组件通过props将数据传递给子组件 子组件利用$emit通知父组件修改更新 跟Qt的信号槽机制很像。...单向数据流:父组件的prop更新,回单向向下流动,影响子组件。 eventBus事件总线 非父子组件之间,进行简易消息传递。 复杂场景同Vuex。...表单组件封装 父传子:父组件props传递,需要拆解v-model,因为props传入的数据不允许被修改。 子传父:监听输入,子传父传值给父组件修改。...v- model简化代码封装 子组件中:props通过value接收,事件触发input。 父组件中:v-model给组件直接绑定数据(:value+@input)。...相关文档:https://cn.vuejs.org/guide/components/v-model.html .sync修饰符 作用:子组件与父组件数据的双向绑定,简化代码。

    34610

    2020年,vue面试遇到的问题(上)

    2.父组件如何获取子组件的数据,子组件如何获取父组件的数据,父子组件如何传值? ① 先说,父组件如何主动获取子组件的数据?...$children) } 打印的是一个数组,可以用 foreach 分别得到所需要的的数据 缺点: 无法确定子组件的顺序,也不是响应式的。如果你确切的知道要访问子组件建议使用$refs。...如果我们将父组件 Index 中的属性 desc、keysword、message 三个数据传递到子组件 HelloWorld 中的话,如下 父组件 Index 部分 父组件传递到孙组件,免除父组件传递到子组件,再从子组件传递到孙组件的麻烦 代码如下 父组件 Index 部分 组件实例了 仅仅是 beforRouteEnter 支持给 next 传递回调,其他两个并不支持,因为剩下两个钩子可以正常获取组件实例 this 如何通过路由将数据传入下一个跳转的页面呢

    2K20

    vue之vue组件component整理

    父子组件之间的通信就是 props down,events up,父组件通过 属性props向下传递数据给子组件,子组件通过 事件events 给父组件发送消息。...而当子组件内部发生了什么事情的时候,就通过自定义事件来把这个事情涉及到的数据暴露出来,供父组件处理。...动态绑定特性值 根据上面,想要把父组件的属性绑定到子组件,应该使用v-bind,这样,父组件中数据改变时能反映到子组件。...这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。 额外的,每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。...this.size.trim().toLowerCase() } } 注意在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变这个对象或数组本身将会影响到父组件的状态

    6.9K21

    【Vuejs】625- Vue常见的考点

    2.父组件如何获取子组件的数据,子组件如何获取父组件的数据,父子组件如何传值? ① 先说,父组件如何主动获取子组件的数据?...打印的是一个数组,可以用 foreach 分别得到所需要的的数据 缺点: 无法确定子组件的顺序,也不是响应式的。如果你确切的知道要访问子组件建议使用$refs。...如果我们将父组件 Index 中的属性 desc、keysword、message 三个数据传递到子组件 HelloWorld 中的话,如下 父组件 Index 部分 父组件传递到孙组件,免除父组件传递到子组件,再从子组件传递到孙组件的麻烦 代码如下 父组件 Index 部分 组件实例了 仅仅是 beforRouteEnter 支持给 next 传递回调,其他两个并不支持,因为剩下两个钩子可以正常获取组件实例 this 如何通过路由将数据传入下一个跳转的页面呢

    2.5K20

    vue父子组件传值方法_vue父组件向子组件传递对象

    前言 在业务场景中经常会遇到子组件向父组件传递数值,或是父组件向子组件传递数值,下面将结合vue富文本框一起来了解一下父与子组件之间的传值 业务场景 在vue项目中创建了一个可以重复使用的富文本编辑器...(可参考【vue】vue富文本编辑器(可重复使用组件)vue-quill-editor),由于是新闻编辑页面,首先需要把已经保存好的新闻内容展示在富文本编辑器中(父组件向子组件传值),其次需要把更新后的新闻内容保存到数据库中...:this.content //通过props把数据赋值给data,然后通过v-model给富文本编辑器赋值 }; }, B、父组件关键代码 import Editor from “@/...>//通过v-bind:子组件props进行数据的传 子组件向父组件传值 (@childemit=parentEvent) 1、业务:在新闻编辑页面中,在富文本编辑器中(子组件)更新内容后,把最新的内容传递给到新闻页面中...$emit(‘childemit’, value)把value传递给父组件 //parentEvent:在父组件中定义一个method,在method中可以获取到从子组件传递过来的值 methods:

    2.4K10
    领券