将TypeScript和Vuejs一起使用时的对象级变量?

时间:2017-12-31 15:15:19

标签: javascript typescript vue.js vuejs2

我不确定最佳方法是什么。我想制作一个组件,我想要使用一些对象级变量。请参阅以下示例:

library(tidyquant)
tq_get(c("DTE.DE", "SAP.DE"), get = "stock.prices", from = "2017-12-01") %>%
 group_by(symbol) %>% 
 tq_mutate(select = c("high", "low", "close"), n=14, mutate_fun = ATR) %>% 
 tq_mutate(select = c("high", "low"), mutate_fun = DonchianChannel) %>% 
 dplyr::rename(ATR_trueHigh = ATR,
               ATR_trueLow = ATR.1,
               DC_low = DonchianChannel,
               DC_mid = mid,
               DC_high = DonchianChannel.1)

我想要一个对象级变量paperScope,所以我可以跨方法引用它。我不想将这些变量存储在数据中,因为它们不需要由vuejs监视。有什么像

col_rename

可以用吗?

我现在唯一想到的是,我需要创建一个扩展vue的类型定义,并包含类似$ privateVariables的内容。只是想知道是否有内置或更好的方式来做我想要完成的事情?

1 个答案:

答案 0 :(得分:-1)

  

我不想将这些变量存储在数据中,因为它们不需要由vuejs监视。

如果要实现这种非反应性变量,可以使用$options来存储它们。我也从this issue comment学到了这种技术。

https://jsfiddle.net/ujd1h586/

HTML:

<div id="app">
  <p>{{ message }}</p>
  <button @click="updateText">
    update
  </button>
</div>

Vue组件:

new Vue({
  el: '#app',

  privateVariable: 'Thanks Vue.js!',

  data() {
    return {
      message: 'Hello Vue.js!'
    };
  },

  methods: {
    updateText() {
      this.message = this.$options.privateVariable;
    }
  }
})