小编Cyb*_*rAP的帖子

在观察到一个元素后再次调用 IntersectionObserver 回调?

我正在观察消息并使用消息时间戳跟踪这些观察结果。这些观察有一个重要条件:如果页面上没有客户端活动(光标不移动,或者他没有输入任何内容),则跟踪时间戳不应更新。客户经常收到一条新消息,但没有任何活动。这意味着一旦完全观察到该元素,Observer 就会跳过该元素。但是当用户实际提供一些活动时,不会重新观察该元素,这意味着除非比率发生变化,否则永远不会再次调用观察者回调。我如何告诉 IS 重新计算所有观察以触发我的回调?

手动“重新观察”元素的问题在于,如果元素已经在交叉边界内,则永远不会调用回调。

一些伪代码例如:

IS.callback = function(entries, observer){
    for (var entry in entries)
    {
        if (activity && entries.hasOwnProperty(entry))
        {
            if (lastTimestamp < entries[entry].data.timestamp)
                lastTimestamp = entries[entry].data.timestamp;
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

javascript intersection-observer

1
推荐指数
1
解决办法
1510
查看次数

在VueAxios中从.env设置baseURL

我正在使用安装了VueAxios 的标准Vue starer Webpack模板。我想在使用dev命令构建时使用.env变量配置axios 。我在其中设置了所有内容/config/index.js

const devEnv = require('./dev.env')
module.exports = {
...
    host: devEnv.host || 'localhost',
    port: devEnv.port || 8080,
...
}
Run Code Online (Sandbox Code Playgroud)

然后,dev.env.js在同一目录中定义主机和端口,一切正常。

const dotenv = require('dotenv').config({path: '../.env'})

let host = process.env.VUE_HOST;
let port = +process.env.VUE_PORT;

module.exports = merge(prodEnv, {
    NODE_ENV: '"development"',
    host,
    port
})
Run Code Online (Sandbox Code Playgroud)

但是问题是我无法在src/main.jsVue应用程序中访问主机值。

如果我尝试这样做,我会得到一个错误

vue未定义

import axios from 'axios'
import VueAxios from 'vue-axios'
...
Vue.use(VueAxios, axios)
Vue.axios.defaults.baseURL = `http://${process.env.host}:${process.env.port}`;
Run Code Online (Sandbox Code Playgroud)

尽管端口可以正常工作,但主机不能正常运行并引发错误。

javascript webpack vue.js axios

1
推荐指数
1
解决办法
7193
查看次数