猿问

vue 渲染为php template 问题

vue 宣传页预渲染成PHP template问题

用vue做的宣传单页,build 后的页面只有一个div 标签,内容都在js 文件用,最关键的是一些页面需要php变量 输出一些数据,这些数据是无状态的,异步请求浪费一次请求,需求希望在用php 模板直接报一些数据渲染到页面中,一次请求,加载出所有页面的数据。

尝试

用 prerender-spa-plugin 做预渲染,页面中没有php 直出的数据效果还可以,如果页面中需要php 变量输入数据 如:{$list} 得到一个列表,预渲染出来的html 就没有数据了。
尝试配置 externals 把php 输出数据当变量 应用,但没有效果。

相关代码

  externals: {
        pagedata: 'pagedata'
    },
    // prerender-spa-plugin
    plugins:[
    new PrerenderSPAPlugin({
          // Index.html is in the root directory.
          staticDir: path.join(__dirname, '../dist'),
          routes: ['/'],
          // Optional minification.
          minify: {
              collapseBooleanAttributes: false,
              collapseWhitespace: false,
              decodeEntities: false,
              keepClosingSlash: false,
              sortAttributes: false
          },

          // renderer: new Renderer({
          //     renderAfterTime: 5000,
          // })
      })
     ]
     
     
    // 不用webpack 时 单例 vue  {$user} PHP模板变量
      data: {
                haha:{$user.haha_balance},
                balance:{$user.balance},
        }
     

需要拿到PHP 模板中的 变量数据, 然后后预渲染忽略这些变量,但能在最后build 的html 中出现。

浮云间
浏览 500回答 2
2回答

米脂

你要php来渲染数据,那用vue的意义又是什么

眼眸繁星

你想让php渲染模板,那么你不能用vue-cli生成项目,你只能用<script>引入vue,这种场景下,var a = {$user};php就可以直接渲染好啊,然后你js调用你这个变量就可以了啊
随时随地看视频慕课网APP
我要回答