【问题标题】:Change variable in component using vue.js使用 vue.js 更改组件中的变量
【发布时间】:2018-02-17 02:38:48
【问题描述】:

我有导航栏刀片、带有文本的组件和带有页面的另一个组件。 它的工作方式就像我在导航栏中有带有文本的组件,而在导航栏之后有另一个组件。那是另外三个组件。如何从 text.vue 中的 index.vue 更改文本?

这就是我所拥有的:

Text.vue:

<template>
<p class="title">{{msg}}</p>
</template>

<script>
    export default {
        props: [
            'msg',
        ],
        data() {
            return {
            }
        },
        mounted() {
        },
        methods: {
        }
    }
</script>

navbar.blade.php 中的组件:

    <navbar-title></navbar-title>

我尝试在 index.vue 中更改它,当我们在这个页面上时应该可以工作:

data() {
            return {
                msg: 'text',
            }

但它不起作用。如何正确操作?

编辑:

Vue.component('title', require('./components/Title.vue'));

【问题讨论】:

  • 你能告诉我们你注册vue组件的代码吗?
  • @Quezler 已编辑

标签: javascript laravel vue.js vuejs2


【解决方案1】:

要将消息变量从 index.vue 通过 navbar.vue 传递到 title.vue,每个都需要将属性传递给子节点,并且每个子节点必须在整个树中再次传递属性。

这样的事情应该适用于您的情况:&lt;title :msg="msg"&gt;&lt;/title&gt;

【讨论】:

  • 是的,我假设你的 index.vue 中的 &lt;navbar&gt;&lt;/navbar&gt; 也有 :msg="msg"
  • 你是什么意思?
  • index.vue 定义变量并使用:msg="msg" 将其传递给您的navbar.vuenavbar.vue 需要拥有该属性,因为它正在接收它。
  • navbar.vue 需要将:msg="msg" 的属性传递给您的title.vue,而title.vue 反过来也需要拥有该属性
  • 你能在代码上给我看这个吗?我不知道你是什么意思
猜你喜欢
  • 2022-12-02
  • 2022-01-17
  • 2017-10-22
  • 2016-06-14
  • 2018-07-18
  • 2017-05-14
  • 2018-02-15
  • 1970-01-01
  • 2018-03-07
相关资源
最近更新 更多