在 vue 里,如何把变量(props)自动传递下去?
有一个需求,做 i18n 国际化,网上看的诸多方案不太喜欢(都要在模板里调用一个翻译函数),于是捣鼓了一种方式:
让 vue app 实例持有一份 i18n 清单,并通过 props 传递给每个实例或组件,这样每个实例都能使用这个 i18n 对象了。
不过这种写法还是比较丑陋的,因为传递的方式是这样的,且每个地方都要写一遍:
<router-view v-bind:i18n="i18n" class="view"></router-view>
必须要显式的把 i18n 传递给 router-view,我希望这一步能够自动完成,即写的时候不用写 v-bind:i18n="i18n":
<router-view class="view"></router-view>
不知道 vue 支持不支持这种操作,怎么做?
题外话,vue 有没有一种方式,让组件访问上级实例的数据?就是说我不把 i18n 通过 props 传递给组件,组件(模板)也能访问 i18n,如果可以这样,那么更好了,可以少写很多代码。