Есть тут люди которые писали на ангуляре 2 и vue? что скажите?
П.с я понимаю что на vue можно лепить архитектуру как хочешь, а ангуляр уже навязывает свою. |
Цитата:
Цитата:
Панику оставьте для Ангуляров, Реактов и т.п.) Цитата:
Цитата:
|
nerv_,
Верстка тут вообще не причем. Я про композицию UI и архитектуру в целом. То есть каждый компонент это своя папка. В ней лежит шаблон, класс и стили. Это то, к чему мы пришли с ангуляр2. |
Cyber, заюззай вебпак и все.
Вот пример моего компонента на Vue.
'use strict';
/*!
* TravelChat Client
* Released under the FSFUL license
*/
import iData from '../i-data/i-data';
import keyCodes from '../../core/keyCodes';
import * as tpls from './b-button.ss';
import { model } from '../../core/block';
import { wait } from '../i-block/i-block';
@model(tpls)
export default class bButton extends iData {
/**
* Button type
*/
type: string = 'button';
/**
* Connected form id
*/
form: ?string;
/**
* Icon before text
*/
preIcon: ?string;
/**
* Icon after text
*/
icon: ?string;
/**
* Tooltip text
*/
hint: ?string;
/**
* Tooltip position
*/
hintPos: ?string;
/** @override */
static mods = {
rounding: [
'none',
['small'],
'normal',
'big'
],
width: [
['normal'],
'full'
],
opened: [
'true',
['false']
]
};
/**
* Opens the dropdown
*/
@wait('loading')
open() {
if (this.$slots.dropdown && this.setMod('opened', true)) {
this.emit('open');
}
}
/**
* Closes the dropdown
*/
@wait('loading')
close() {
if (this.$slots.dropdown && this.setMod('opened', false)) {
this.emit('close');
}
}
/**
* Toggles the dropdown
*/
toggle() {
this.ifSomeMod(['opened'], true) ? this.close() : this.open();
}
}
|
Цитата:
|
nerv_,
Но ведь приложение это и будет дерево компонентов... |
kobezzza, что делает деректива wait?)
|
Цитата:
|
kobezzza, сенк, подумал не много о другом)
|
Законно ли вызывать методы дочерних компонентов через $ref?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<my-component ref="myComponent"></my-component>
<button @click="handleToggle">toggle</button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.1/vue.min.js"></script>
<script>
Vue.component('my-component', {
template: '<div v-if="active">my-component</div>',
data: () => ({ active: false }),
methods: {
toggle() {
this.active = !this.active
}
}
})
new Vue({
el: '#app',
methods: {
handleToggle() {
this.$refs.myComponent.toggle() // я об этом
}
}
})
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 23:57. |