VUEのWPFにおけるMvvMモード異同


VUEとWPFを学んで、またそれらはすべてMvvmモードを採用したため、ここで1つの簡単な対比記録をして、記憶しやすいです
1.Vueの意味でのViewModelとViewは通常、new VueによってView Modelを作成し、elはページViewのidを指定して関連付けられ、dataはjsonデータをバインディングのために提供し、methodsは関数をバインディングのために提供する.コードは次のとおりです.

	

site : {{site}}

url : {{url}}

{{details()}}

var vm = new Vue({ el: '#vue_det', data: { site: " ", url: "www.runoob.com", alexa: "10000" }, methods: { details: function() { return this.site + " - , !"; } } })

WPFでは分離されており、ViewModelには様々な属性が含まれており、バックグラウンドコードでDataContextに関連付けることもできるし、フレームワークでViewModelをViewModelLocatorに登録することに同意し、ページでDataContext参照を行い、その後、BindingでViewModelで定義された各属性データをバインドし、Commandで定義された各コマンドをバインドすることもできる.コードは次のとおりです.

2.Vue中的v-bind 类似于WPF中的Binding,用于内容绑定,Vue中可以缩写为:,后面紧跟参数名称=‘’参数值‘’(区别,v-model是紧跟=‘’参数值‘’)。而WPF中没有缩写,在控件属性中通过{}绑定内容,并指定Binding及其绑定内容的路径,它通常是ViewModel中定义的属性。

3.Vue中的v-on 类似于WPF中的Command,用于事件绑定,Vue中可以缩写为@,后面紧跟事件类型名称。而WPF中没有缩写,在控件默认的事件中触发命令,也可以通过事件转命令来触发命令。

4.Vue中的ViewModel在页面定义,其数据由json组成,也就是键值对,在view页面使用时通过指定键名来进行绑定。标签外部内容绑定方式为{{键名}},标签内部绑定方式为v-model="键名"。而WPF中并非json格式,支持各种类型的属性,绑定通常在控件内部,绑定方式为{Binding Path=属性名}。

5.Vue中的过滤器类似于WPF中的值转换器,用于对原始的数据进行一些过滤转换后再显示,这里Vue中的使用和定义方式分别为

{{message | reverse | uppercase}}

Vue.filter('reverse', function (value) {
    return value.split('').reverse().join('')
})

wpfでの使用と定義はそれぞれ
Binding="{Binding Path=Type, Converter={StaticResource ToTypeNow}}"

public class ThicknessSplitConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            //...
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

6.Vueが提供するキーの別名がより豊富.enter.tab.delete(「削除」と「バックアウト」キーをキャプチャ).esc.space.up.down.left.right.ctrl.alt.shift.meta , WPF exit、focus 7.Vueのうち WPFのユーザコントロールと同様にVueを通過する.コンポーネント(コンポーネント名、コンポーネント内容)はグローバルコンポーネントを定義し、ローカルコンポーネントはnew Vueの内部で定義され、Viewページでコンポーネント名>呼び出しを行います.WPFでは、グローバルとローカルの概念はなく、ユーザーコントロールを新規作成し、Viewページの宣言部分にコマンドコントロールリファレンスを追加した後、呼び出します.