Pull to refresh
5
0
Юра Панарин @PYXRU

Software Engineer

Send message

Я про то что вот так примерно Vue следит за изменениями реактивных переменных, вот таким способом они избегают возможную рекурсию:


        props.forEach((prop) => {
            let property = undefined
            Object.defineProperty(this, prop, {
                set: (value) => {
                    let oldValue = this[prop]
                    let newValue = value
                    let name = "set"
                    if (oldValue) {
                        name = "change"
                    }
                    property = value
                    if (this.trigger) {
                        this.trigger({
                            key: prop, name, newValue, oldValue
                        })
                    }

                },
                get: () => {
                    return property
                }
            })
        })

Ты вообще о чем? Я если что не про "bind call или apply"

Супер! Отличный доклад, схранил

Я так понял, это доклад был на HighLoad 2017 Moscow. Вот ссылка кому интересно на видео версию: https://youtu.be/Ygfwwd490mk?t=1h2m7s

На этой вашей мутабельность держиться большинство фраемворков(angular), тот же Vue биндит реактивные свойства через замыкание по сути вообще костыль для избежания рекурсии, и таких приемов очень много. Проблема кажется более надуманная, поскольку большинство знают что не примитивные типы передаются по ссылке. Если для вас это действительно проблема Object.defineProperty или typescript вам в помощь.

Благодаря этой заглушки они усилили типизацию как раз, потому что теперь если метод принципе не может принять примитив он не будет допущен ts компилятором. any — такое бы позволил.

Да обычный препроцессор

TS проверяет все на этапе компиляции в js. По сути не валидный ts код, может быть валидный в js(если конечно через force скомпилить)

 <for in="${ this.data }">
    <loop>${ this.loopIndex } => ${ this.loopKey} => ${ this.loopValue.title  }</loop>
  </for>

Синтаксис так себе, интуитивно не понятный, по сути скрестили кота с ежом без без поддержки кота и ежа. И вызовы конструктора базового класса, тоже не удобно, нужны обертки. Сверху правы берите Vue и не мучайтесь

Я думаю, что ко многим виджетам звонка можно написать короткую обертку для методов, и потом назвать "несколько строк кода"

Большое спасибо за ваш интересный опыт

Думаю когда нибудь сделают такой модуль в Angular, было бы интересно на него взглянуть в больших проектах.
Очень талантливо сделано, жалко у меня не андроид
В ближайшее время переведем на SSL, будет работать через proxy

Information

Rating
Does not participate
Location
Бобо Диуласо, Буркина Фасо, Буркина Фасо
Date of birth
Registered
Activity