繁体   English   中英

Vue.js - 观察 JSON 文件中的变化

[英]Vue.js - Watch changes in JSON file

这里的想法是观察 JSON 文件中所做的更改,如果某些值发生更改,它会自动更改条件 v-if。

<div id="app">
 <div v-if="content == 'one'">
   <p>Content one</p>
 </div>
 <div v-else-if="content == 'two'">
   <p>Contentn two</p>
 </div>
</div>

现在棘手的部分来了,我需要能够在构建后更改 JSON 文件,并自动更改将显示的内容。

new Vue({
  el: "#app",
  data: {
   content: ''
  },
  methods: {
    // import of JSON and value that will assign value to this.content
        // Now value can be 'one' or 'two'
  }
})

不可能观察 json 文件中的变化。 您可以做的是将 json 设置为反应属性并检查那里的更改。 更改 JSON 时,您还需要更新响应属性,以便触发观察者

new Vue({
  el: "#app",
  data: {
   content: ''
  },
  watch: {
    content: function (val) {
      // do something when content has changed
    },
    },
  methods: {
    importJson() {
            // import json and set contents to content
    },
    saveJson(newJSON) {
        this.content = newJSON
      // Somehow save the json data to the json file
    }
  }
})

您现在应该对 JSON 文件的更改不是持久的。

我用 axios 解决了这个问题。 :)

methods: {
        updateData () {
          axios.get('../static/client/data.json').then(response => {
            console.log(response.data)
            this.dataClient = response.data
          })
        }
      },
      created () {
        this.updateData()
      }

现在,当您在构建和刷新浏览器后更改“dist”文件夹中的 JSON 文件时,它将加载新值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM