尝试使用Phantom.js生成PDF时,Vue.js无法呈现

mar*_*ch2 5 javascript pdf phantomjs vue.js vuejs2

在这个带有硬编码url的简单示例中,我的Vue.js组件没有渲染,普通的html会被渲染,但是我有一个组件的所有地方都显示为空白.

Phantom.js应该与Vue.js一起正常工作吗?

var webPage = require('webpage');
var page = webPage.create();

page.viewportSize = { width: 1920, height: 1080 };
page.open("-----------", function start(status) {
    page.render('test.jpeg', {format: 'jpeg', quality: '100'});
    phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)

想要帮助并进行测试的快速vue代码.

<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.jsdelivr.net/vue/latest/vue.js" charset="utf-8"></script>
        <style media="screen"> body { background-color: grey; } </style>
    </head>
    <body>
        plain text before vue
        <div id="app" v-text="title" />
        plain text after vue
        <script type="text/javascript">
            const app = new Vue({ el : '#app', data () { return { title : 'Vue Title' } } });
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Jew*_*wel 0

检查你的 phantomjs 版本。Phantomjs 2.x 版可以很好地与 vuejs 配合使用。

phantomjs 可能运行得太快,以至于当元素到达该部分代码时尚不可用。在尝试访问元素之前,使用 waitForElement 或 wait 来引发延迟。