Как заставить сервер / srr отображать только как vue компоненты? - PullRequest
0 голосов
/ 16 июня 2019

Я использую vue-no-ssr (https://github.com/egoist/vue-no-ssr),, но он создает компоненты, которые отображаются только на стороне клиента. Я хочу отобразить свой компонент на стороне сервера. Есть ли способ сделать компонент vue, который только рендерит на сервере?

Я пытался использовать исходный код vue-no-ssr ниже, но я не понимаю, как его принять.

export default {
  name: 'NoSsr',
  functional: true,
  props: {
    placeholder: String,
    placeholderTag: {
      type: String,
      default: 'div'
    }
  },
  render(h, { parent, slots, props }) {
    const { default: defaultSlot = [], placeholder: placeholderSlot } = slots()

    if (parent._isMounted) {
      return defaultSlot
    }

    parent.$once('hook:mounted', () => {
      parent.$forceUpdate()
    })

    if (props.placeholderTag && (props.placeholder || placeholderSlot)) {
      return h(
        props.placeholderTag,
        {
          class: ['no-ssr-placeholder']
        },
        props.placeholder || placeholderSlot
      )
    }

    // Return a placeholder element for each child in the default slot
    // Or if no children return a single placeholder
    return defaultSlot.length > 0 ? defaultSlot.map(() => h(false)) : h(false)
  }
}

1 Ответ

0 голосов
/ 22 июня 2019

vue-lazy-hydration

https://github.com/maoberlehner/vue-lazy-hydration

похоже, что может делать только ssr, когда простаивает, когда виден ... и более

...