关于vue中组件传值的一些问题

一:父子组件之间的传值**

父组件传递给子组件:需要在子组件中通过props接收值
子组件传递给父组件:$emit("自定义事件",要传输的值)

子--->父
在子组件中需要通过点击事件传递给父组件值,点击事件触发后,通过this.$emit("自定义事件",要传递的值)
 **注意**在父组件接收时必须在对应的子组件接收相应的传值操作。

关于vue中组件传值的一些问题

关于vue中组件传值的一些问题
(图片是我盗的!侵删!!)

**注意**
  动态数据需要用下图方式

关于vue中组件传值的一些问题

二、通过路由带参数进行传值

①两个组件 A和B,A组件通过query把orderId传递给B组件(触发事件可以是点击事件、钩子函数等)
this.$router.push({ path: '/conponentsB', query: { orderId: 123 } }) // 跳转到B
②在B组件中获取A组件传递过来的参数
this.$route.query.orderId

三、通过设置 Session Storage缓存的形式进行传递(这个没用过)

①两个组件A和B,在A组件中设置缓存orderData
const orderData = { 'orderId': 123, 'price': 88 }
sessionStorage.setItem('缓存名称', JSON.stringify(orderData))
②B组件就可以获取在A中设置的缓存了
const dataB = JSON.parse(sessionStorage.getItem('缓存名称'))
此时 dataB 就是数据 orderData

五、vuex进行传值
为什么使用vuex?
vuex主要是是做数据交互,父子组件传值可以很容易办到,但是兄弟组件间传值(兄弟组件下又有父子组件),或者大型spa单页面框架项目,页面多并且一层嵌套一层的传值,异常麻烦,用vuex来维护共有的状态或数据会显得得心应手。

vue

相关推荐