Vue不同的组件内,数据能否共用

1.父组件的template:

<router-link to="/compile-intention">
<div>
[<span>广州</span>]<span>web前端</span>
</div>
<p>7k-8k <span>不限</span></p>
</router-link>

子组件的template:

<div class="compile-content">

        <router-link to="">
            期望职位
            <span>web前端 <img src="../../assets/right_select.png"/></span>
        </router-link>
        <router-link to="">
            期望行业
            <span>不限 <img src="../../assets/right_select.png"/></span>
        </router-link>
        <router-link to="">
            工作城市
            <span>广州 <img src="../../assets/right_select.png"/></span>
        </router-link>
        <router-link to="">
            薪资要求
            <span>7k-8k <img src="../../assets/right_select.png"/></span>
        </router-link>
    </div>

点击父组件跳转到子组件,我想获取它们的关键字,数据能否共享?

阅读 4.6k
4 个回答

vuex整站共享数据
但是完全不建议因为你的没必要,自己定一个json数据就行,你应该放在router里

const route = [
  {
    path: '/',
    name: '/index',
    meta: {
      title: '幻奇棋牌',
      auth: true
    },
    components: {
      default: resolve => require(['./index'], resolve)
    }
  }
]

router.beforeEach(function (to, from, next) {
  if (typeof to.meta.title !== 'undefined') {
    Vue.$a031.setDocumentTitle(to.meta.title)
  }

其他的也可以,自己去读取当前route就行

当然可以共享
1.使用prop属性可以接收父组件传进子组件数据
2.使用vuex存在内存里面,这个要注意刷新浏览器数据会丢的问题
3.sessionStorage保存到浏览器上,很方便

推荐用prop emit方式进行父子组件沟通,这点在官方文档里面有详细的教程

新手上路,请多包涵

当然可以,你把你需要共用的数据存放在vuex里面就ok了,到时候映射state进来,直接拿值就可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题