Rewrite about page with Vue

This commit is contained in:
2018-06-22 22:49:59 +03:00
parent f0c83831db
commit 9227d18970
9 changed files with 86 additions and 122 deletions

View File

@ -1,61 +1,7 @@
import $ from 'jquery';
import _ from 'underscore';
import Backbone from 'backbone';
import Metrika from '../common/metrika';
import './style.scss';
import Vue from 'vue';
import About from './about.vue';
const PageView = Backbone.View.extend({
notes: [
'Люблю фильм "Три идиота".',
'Люблю кататься на велосипеде.',
'Люблю читать фантастические книги.',
'Люблю шоколад.',
'На день рождения ко мне можно прийти без подарка.',
'Не люблю пьяных людей.',
'Предпочитаю ходить в кино на 2D-сеансы.',
'Проехал на велосипеде 200 километров за день.',
'Работаю программистом.',
'Хотел бы побывать в горах.',
],
shown: [],
events: {
'click #know-better': 'onClickKnowBetter',
},
initialize() {
this.render();
},
render() {
this.showRandomFact();
return this;
},
pickRandomFact() {
let available = _.difference(this.notes, this.shown);
if (_.size(available) === 0) {
available = this.notes;
this.shown = [];
}
const phrase = _.sample(available);
this.shown.push(phrase);
return phrase;
},
showRandomFact() {
const fact = this.pickRandomFact();
this.$('#about-me-note').text(fact);
},
onClickKnowBetter(evt) {
evt.preventDefault();
this.showRandomFact();
Metrika.hit(location.href);
},
new Vue({
el: '#app',
render: h => h(About),
});
new PageView({ el: $('.js-about-me') });