Javascript Vue-将相同的数据从一个组件传递到多个组件
我有以下代码 main.jsJavascript Vue-将相同的数据从一个组件传递到多个组件,javascript,webpack,vue.js,vuejs2,vue-component,Javascript,Webpack,Vue.js,Vuejs2,Vue Component,我有以下代码 main.js new Vue({ el: '#app', template: '<App/>', components: { App } }) newvue({ el:“#应用程序”, 模板:“”, 组件:{App} }) App.vue <template> <div id="app"> // this does not pass the data to the component <basics :
new Vue({
el: '#app',
template: '<App/>',
components: { App }
})
newvue({
el:“#应用程序”,
模板:“”,
组件:{App}
})
App.vue
<template>
<div id="app">
// this does not pass the data to the component
<basics :resume="resume"></basics>
<education :resume="resume"></education>
// this gets the value from the json file
{{resumeData.name}}
{{resumeData.education}}
</div>
</template>
<script>
import Basics from './components/Basics.vue'
import Education from './components/Education.vue'
import Resume from '../resume.json'
export default {
name: 'app',
data() {
return {
resumeData: Resume
}
},
components: {
Basics,
Education
}
}
</script>
<template>
<div>
<p>Basics</p>
// this does not get the value from the json file
{{resumeData.name}}
</div>
</template>
<template>
<div>
<p>Education</p>
{{resumeData.education}}
</div>
</template>
//这不会将数据传递给组件
//这将从json文件中获取值
{{resumeData.name}
{{resumeData.education}
从“./components/Basics.vue”导入基础知识
从“/components/Education.vue”导入教育
从“../Resume.json”导入简历
导出默认值{
名称:“应用程序”,
数据(){
返回{
简历数据:简历
}
},
组成部分:{
基础知识,
教育类
}
}
/components/Basics.vue
<template>
<div id="app">
// this does not pass the data to the component
<basics :resume="resume"></basics>
<education :resume="resume"></education>
// this gets the value from the json file
{{resumeData.name}}
{{resumeData.education}}
</div>
</template>
<script>
import Basics from './components/Basics.vue'
import Education from './components/Education.vue'
import Resume from '../resume.json'
export default {
name: 'app',
data() {
return {
resumeData: Resume
}
},
components: {
Basics,
Education
}
}
</script>
<template>
<div>
<p>Basics</p>
// this does not get the value from the json file
{{resumeData.name}}
</div>
</template>
<template>
<div>
<p>Education</p>
{{resumeData.education}}
</div>
</template>
基础知识
//这不会从json文件中获取值
{{resumeData.name}
/components/Education.vue
<template>
<div id="app">
// this does not pass the data to the component
<basics :resume="resume"></basics>
<education :resume="resume"></education>
// this gets the value from the json file
{{resumeData.name}}
{{resumeData.education}}
</div>
</template>
<script>
import Basics from './components/Basics.vue'
import Education from './components/Education.vue'
import Resume from '../resume.json'
export default {
name: 'app',
data() {
return {
resumeData: Resume
}
},
components: {
Basics,
Education
}
}
</script>
<template>
<div>
<p>Basics</p>
// this does not get the value from the json file
{{resumeData.name}}
</div>
</template>
<template>
<div>
<p>Education</p>
{{resumeData.education}}
</div>
</template>
教育
{{resumeData.education}
如何将数据从一个组件传递到另一个组件,以便所有不同的vue组件都从同一个json文件读取数据,而无需在每个组件中插入代码import Resume from'../Resume.json
我希望你能理解我的问题。更常见/标准的方法就是使用道具。或者您必须在所有组件中导入json 如果您有许多组件,并且确实不想多次传递同一道具,那么有一个棘手的解决方案:将数据全局注入Vue.prototype:
Vue.prototype.$resume = {
name: 'foo',
education: 'bar',
...
}
有了它,您的所有组件都可以通过this.$resume
访问它。但要明智地使用它
如果您有其他类似的情况,您可能应该选择。在vue.js课程中,您可以用3种不同的方法解决此问题