1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wengcd-react-start-kit-flux-demo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
how-to-integrate-disqus.md 1.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
solome Отправлено 07.08.2015 11:29 bf056a1

How to Integrate Disqus

https://disqus.com/admin/create/

DisqusThread.js

import React, { PropTypes } from 'react';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';

const SHORTNAME = 'example';
const WEBSITE_URL = 'http://www.example.com';

function renderDisqus() {
  if (window.DISQUS === undefined) {
    var script = document.createElement('script');
    script.async = true;
    script.src = 'https://' + SHORTNAME + '.disqus.com/embed.js';
    document.getElementsByTagName('head')[0].appendChild(script);
  } else {
    window.DISQUS.reset({reload: true});
  }
}

class DisqusThread {

  static propTypes = {
    id: PropTypes.string.isRequired,
    title: PropTypes.string.isRequired,
    path: PropTypes.string.isRequired
  };

  shouldComponentUpdate(nextProps) {
    return this.props.id !== nextProps.id ||
      this.props.title !== nextProps.title ||
      this.props.path !== nextProps.path;
  }

  componentDidMount() {
    renderDisqus();
  }

  componentDidUpdate() {
    renderDisqus();
  }

  render() {
    let { id, title, path, ...other} = this.props;

    if (canUseDOM) {
      /* eslint-disable camelcase */
      window.disqus_shortname = SHORTNAME;
      window.disqus_identifier = id;
      window.disqus_title = title;
      window.disqus_url = WEBSITE_URL + path;
      /* eslint-enable camelcase */
    }

    return <div {...other} id="disqus_thread" />;
  }

}

export default DisqusThread;

MyComponent.js

import React from 'react';
import DisqusThread from './DisqusThread.js';

class MyComponent {

  render() {
    return (
      <div>
        <DisqusThread id="e94d73ff-fd92-467d-b643-c86889f4b8be"
                      title="How to integrate Disqus into ReactJS App"
                      path="/blog/123-disquss-integration" />
      </div>
    );
  }

}

export default MyComponent;

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wengcd-react-start-kit-flux-demo.git
git@api.gitlife.ru:oschina-mirror/wengcd-react-start-kit-flux-demo.git
oschina-mirror
wengcd-react-start-kit-flux-demo
wengcd-react-start-kit-flux-demo
master