当使用VueJS时,当使用vue-router
时,如何从$root
视图实例将prop传递给子组件?
$root实例:
const router = new VueRouter({
routes: [{
path: "/dashboard",
component: () => import("./User/Dashboard.vue" /* webpackChunkName: "js/components/user/Dashboard" */ )
}]
});
var app = new Vue({
el: '#app',
router,
data: () => ({
passedProp
}),
});
Laravel布局使用:
@section('content')
<transition name="slide">
<router-view></router-view>
</transition>
@endsection
vue路由器提供的子组件:
<script>
export default {
props: [
'clearFormProp'
]
}
</script>
查看vue路由器文档,有一种通过url传递道具的方法。然而,这使得道具无状态,并且不保留反应性。它只在页面刷新时更新道具。
传递一个静态道具给我留下了同样的问题。
我怎样才能把道具传递给孩子,同时仍然保持道具的反应性?
将道具传递到
<router-view :prop1="localData"></router-view>
在目标组件中:
<template>
<h1>
{{ prop1 }}
</h1>
</template>
<script>
export default{
props:{
prop1: Object
}
}
</script>
此解决方案使用状态模式来解决问题。
假设有一个简单的计数器应用程序,其中有一个显示当前值的文本和一个按钮,用户每次单击该按钮时,该按钮都会增加当前值。
将状态提取为常量:
const counter = {
value: 0
}
export { counter };
然后,您可以导入子组件并直接使用Vue对其进行变异:
<template>
<div>
counter value from child:
{{ counter.value }}
</div>
<div>
<button type="button" @click="() => counter.value++">increment from child</button>
</div>
</template>
<script>
import { counter } from "/src/counter.js";
export default {
data: () => ({ counter })
}
</script>
在根组件中,您可以执行相同的操作:
<template>
<div>
counter value from root:
{{ counter.value }}
</div>
<div>
<button type="button" @click="() => counter.value++">increment from root</button>
</div>
<ChildComponent />
</template>
<script>
import ChildComponent from './components/ChildComponent.vue'
import { counter } from "/src/counter.js";
export default {
name: 'App',
data: () => ({ counter }),
components: {
ChildComponent
}
}
</script>
请参阅下面的图片示例的行为:
注意:这只会起作用,因为这两个组件正在变异相同的对象并触发事件以刷新自身。如果在组件外部增加计数器值,则不会看到刷新,这可以通过vuex解决。
此外,如果这种在多个组件中控制数据的场景在您的应用程序中很常见,我也建议使用vuex
Vuex是一个用于Vue.js应用程序的状态管理模式库。它作为应用程序中所有组件的集中存储,规则确保状态只能以可预测的方式突变
本文向大家介绍vue子组件使用自定义事件向父组件传递数据,包括了vue子组件使用自定义事件向父组件传递数据的使用技巧和注意事项,需要的朋友参考一下 使用v-on绑定自定义事件可以让子组件向父组件传递数据,用到了this.$emit(‘自定义的事件名称',传递给父组件的数据) @increment是子组件this.$emit('increment'自定义的事件,newValue)用来告诉父组件自己干
本文向大家介绍Vue父子传递实例讲解,包括了Vue父子传递实例讲解的使用技巧和注意事项,需要的朋友参考一下 实现功能: 1、子组件的input输入,改变父组件信息 2、父组件对子组件1,3进行监听与控制 3、子组件1与子组件3相互关联 父子双向通信流程: 子组件的input通过事件监听->控制子组件的data中变量/向父组件$emit子事件及变量 父组件监听到$emit事件及变量,赋予父组件的变量
本文向大家介绍vue组件中使用props传递数据的实例详解,包括了vue组件中使用props传递数据的实例详解的使用技巧和注意事项,需要的朋友参考一下 在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递。父组件通过 props 给子组件下发数据,子组件通过事件给父组件发送消息。看看它们是怎么工作的。 一、基本用法 组件不仅仅是要把模板的内容进行复用,更重要的是组件间要进行
本文向大家介绍Vue 使用Props属性实现父子组件的动态传值详解,包括了Vue 使用Props属性实现父子组件的动态传值详解的使用技巧和注意事项,需要的朋友参考一下 如下所示: 这里需要注意的是在html中的 my-message 就是scrpit中的 myMessage。因为: HTML 特性是不区分大小写的。所以,当使用的不是字符串模板时,camelCase (驼峰式命名) 的 prop 需
父组件动态传递ref给子组件应该怎么写? 父组件调用 子组件 这里我想把父组件传递的ccc动态给子组件,然后操作子组件?
但是控制台显示一个错误: 未捕获的 DOMException:无法在 “History” 上执行 'pushState':无法克隆 Symbol(react.element)。 这是什么意思?对此我能做些什么?
本文向大家介绍vue 子组件向父组件传值方法,包括了vue 子组件向父组件传值方法的使用技巧和注意事项,需要的朋友参考一下 子组件注册触发事件,父组件注册 触发子组件事件后的方法写在method里面 父组件这么写 子组件component-a这么写 以上这篇vue 子组件向父组件传值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍vue 动态组件用法示例小结,包括了vue 动态组件用法示例小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue 动态组件用法。分享给大家供大家参考,具体如下: 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换。根据 v-bind:is="组件名" 中的组件名去自动匹配组件,如果匹配不到则不显示。