vue模板中如何使用全局变量, 不是data中定义的变量

示例:

// 模板中如何取到它呢?@20220310
const hithertoSymbol = '-'
// ----------------------------------------------------------
export default {
  data() {
    return {
    }
  }
}

在模板中怎么访问到这个:hithertoSymbol变量

阅读 5.4k
3 个回答

应该没有办法,看你应该是用的vue2

vue2里的render是用with(this)写的,this里肯定不会包含这个变量的,可以看下mdn [with
](https://developer.mozilla.org...)

function generate(
                        ast, //ast 对象模板数据
                        options
                 ) {
        var code = ast ? genElement(ast, state) : '_c("div")';
                return {
                    render: ("with(this){return " + code + "}"),
                    staticRenderFns: state.staticRenderFns //空数组
                }
    }

如果你不想放在data里可以在root组件中使用provide+后代使用inject

想要在模板中使用,必须要绑定到 vue 实例中,vue2 中就是 data() {} 内,可以曲线救国,先在 data 内绑定一个临时变量 tmp ,再在 created 里将 hithertoSymbol 赋值给 tmp ,模板中使用 tmp

vue2可以挂到vue原型上吧,vue3应该可以用mixin

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