Vue + Typescriptのお勉強

VueをTypescriptで実装しようとしたら、方法がさまざまあって手こずる。Vue2を使用していますがVue3に向けてどれで慣れておいたらいいのかも迷う。

上のような表示をするだけのヤツを実装方法を変えて3つ。

  1. vue-class-component
  2. vue-property-decorator
  3. Vue.extend

どれもWebpackを使ってバンドルしています。あとデバッグ用なので特に必要はないですがwindow.appというグローバル変数を作成(global.d.ts)して、ViewModelをグローバルへ露出させています。

一つ目は「vue-class-component」

以下はソースの一部です、デコレータ部分がおっきくなりますね。あとpropへの参照が「$prop」とかエディタのサジェスト機能で初めて知りました。

import Vue from 'vue';
import Component from "vue-class-component";

@Component({
    template:'<li v-on:click="onClick">{{name}}</li>',
    props:{
        name:String
    }
})
class MyData extends Vue{
    onClick = ():void =>{
        console.log(this.$props.name);
    }
}
続きを読む “Vue + Typescriptのお勉強”

たし算

ただただ、たし算の問題と答えを連続で表示するだけのWebページを作ってみる。スペースキーかエンターキー、またはクリックで次の問題が出ます。1から10どうしのたし算ね。スマホでは動きません。

http://leavebehind.iobb.net/test/childsmath/

あっちゅーまに作れて便利です、Vue.js。


Electron製アプリのセキュリティ

electronでのデスクトップアプリ開発の学習を久しぶりに続行しようかと思い立って、改めて推奨されるセキュリティを調べてみる。

リモートコンテンツを読み込む場合は「nodeIntegration: false」ってのは以前からあったけど「contextIsolation: true」は初耳。nodeIntegrationをオフる事でプリロードスクリプトにメインプロセスとレンダラープロセスを仲介させることになりますが、プリロードスクリプトはNode.jsにアクセスできるレンダラープロセスであるためこれも安全ではないんだとか。なのでcontextIsolationでプリロードスクリプトとレンダラーも分離してしまい、代わってAPIはcontextBridgeなるモジュールを通してプリロードからレンダラーへ公開するんだと。

なんかよう分からんようになってきました。穴ふさいだり、ちょっと開けたり大変です。contextBridge経由で使いたい分だけ解放してねって事でしょう、「全部拒否、必要なものだけ許可」、セキュリティのキホンですね。

contextBridge.exposeInMainWorld()でAPI Keyを文字列で登録してその下に関数を公開するんですが、コード補完が効かなくなるよね。JavaScriptでやってるのに、型定義ファイル(*.d.ts)を作らなきゃいけなくなってまあメンドクサイ。

続きを読む “Electron製アプリのセキュリティ”

Particle System on A-Frame

前回(Vertices of icosphere)の続き~。前回はthree.jsでしたが今回はA-Frameのコンポーネントととして。中身はthree.jsですが

aframe-sprite-particles-componentなど、バリエーション豊かなコンポーネントはたくさん見つかりますが、細かいコントロールが出来ず結局スクラッチで作ってみる事に。

THREE.Pointsで何万パーティクルと動かしてみましたがスマホでも60fpsで動くんですね。


Vue.js

Vue.jsのお勉強を少しずつ始めました。

昨年はReactの勉強してたっけ?どっかで挫折したような覚えがありますが忘れたし、もう一度はじめからはシャクやし、って事でVue.js始めました。ここ数週間公式ガイドで進めていましたが、コンポーネントのイベントハンドリング当たりで失速。

弱くなった頭でも理解できそうな本を選んで学習の続行中です。

ゼッタイにわかるらしい

実はこのような実践的な書籍を最後まで読み切った事があまりありません、なんででしょうね?だいたい半分くらいまで読んだら、公式サイトで使われている用語や仕様、設計思想なんかが理解出来るようになって、そちらに回帰する事が多いから?かな?