vue2夸页面上传数据,就是 我在一个组件输入的值,在其他页面点提交才post上传

就是 我在一个组件输入的值,在其他页面点提交才post上传
Vue2

该回答引用ChatGPT

要在Vue 2中实现此功能,您可以使用Vuex来存储输入组件的值,然后在提交页面中使用该值进行POST请求。

以下是一个基本示例:

在Vuex Store中创建一个state,用于存储输入值:


// store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    inputValue: ''
  },
  mutations: {
    setInputValue(state, value) {
      state.inputValue = value
    }
  }
})

在输入组件中,将输入值提交到Vuex store中:


// InputComponent.vue
<template>
  <div>
    <input v-model="inputValue" type="text" />
    <button @click="submitInput">Submit</button>
  </div>
</template>

<script>
import { mapMutations } from 'vuex'

export default {
  data() {
    return {
      inputValue: ''
    }
  },
  methods: {
    ...mapMutations([
      'setInputValue'
    ]),
    submitInput() {
      this.setInputValue(this.inputValue)
    }
  }
}
</script>

在提交页面中,使用Vuex store中的值进行POST请求:


// SubmitPage.vue
<template>
  <div>
    <p>Input Value: {{ inputValue }}</p>
    <button @click="submitForm">Submit</button>
  </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
  computed: {
    ...mapState([
      'inputValue'
    ])
  },
  methods: {
    submitForm() {
      // Make POST request using inputValue
      // ...
    }
  }
}
</script>


这样,您就可以将输入组件中的值存储在Vuex store中,并在提交页面中使用该值进行POST请求。

参考chatGDP的回答内容,要在Vue 2中实现在一个组件输入的值在其他页面提交时进行POST上传,可以使用以下步骤:

1.创建一个全局事件总线(event bus),用于在组件之间共享数据。在Vue 2中,可以使用Vue实例作为事件总线:

// 在main.js中创建一个全局Vue实例作为事件总线
Vue.prototype.$bus = new Vue()

2.在组件中,将输入的数据存储在一个变量中,并将其传递到事件总线上:

// 在组件中存储输入的数据,并将其传递到事件总线上
this.$bus.$emit('input-updated', this.inputValue)

3.在另一个组件或页面中,监听事件总线,并在事件被触发时进行POST上传:

// 在另一个组件或页面中监听事件总线,并在事件被触发时进行POST上传
this.$bus.$on('input-updated', (inputValue) => {
  // 在这里进行POST上传操作,使用inputValue作为POST数据
})

注意,由于事件总线是全局共享的,所以在多个组件或页面中使用时需要注意命名冲突问题,最好使用唯一的事件名称。

回答不易,还请采纳!!!

  1. 通过prop 将这个组件的值传到其他页面 其他页面搞个隐藏的input 然后一起提交
  2. 提交时候 this.$refs.组件的某个属性值

可以使用Vuex来在不同页面之间共享数据。在你的组件中,将输入的值存储在Vuex的state中。然后,在其他页面上的提交按钮的事件处理程序中,可以访问这些值并将它们发送到服务器上。

以下是一个简单的示例:

1 创建一个Vuex store:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    inputValue: ''
  },
  mutations: {
    setInputValue (state, value) {
      state.inputValue = value
    }
  },
  actions: {
    setInputValue ({ commit }, value) {
      commit('setInputValue', value)
    }
  },
  getters: {
    inputValue: state => state.inputValue
  }
})


2 在组件中将输入的值存储在Vuex state中:

<template>
  <div>
    <input v-model="inputValue" type="text">
  </div>
</template>

<script>
import { mapActions, mapGetters } from 'vuex'

export default {
  computed: {
    ...mapGetters([
      'inputValue'
    ])
  },
  methods: {
    ...mapActions([
      'setInputValue'
    ]),
    saveInputValue () {
      this.setInputValue(this.inputValue)
    }
  }
}
</script>


3 在其他页面上的提交按钮的事件处理程序中,访问这些值并将它们发送到服务器上:

<template>
  <div>
    <button @click="submitForm">Submit</button>
  </div>
</template>

<script>
import { mapGetters } from 'vuex'

export default {
  computed: {
    ...mapGetters([
      'inputValue'
    ])
  },
  methods: {
    submitForm () {
      // send the input value to the server
      console.log(this.inputValue)
    }
  }
}
</script>


在这个示例中,组件中的输入值通过setInputValue函数存储在Vuex state中。在另一个页面上的submitForm函数中,可以访问存储的inputValue值并将其发送到服务器上。