mpvueの公式文書を解読するClassとStyleのバインドと文法をサポートしない
3292 ワード
vueでjsプロジェクトがウィジェットに変換されたとき、元のページのコードを直接コピーすると、レイアウトがずいぶん変わったことに気づき、すでに設定されているラベルのcssスタイルが表示されていないことが多く、公式ドキュメントを見て、元のvueを知った.jsのClassはStyleと文法をバインドし、mpvueに適していないものもあります.以下にいくつかの点をまとめます.
一.classバインド方式(1).mpvueサポート:class="{active:isActive}"
(2).mpvueは三元式(v-bind:class="[isActive?activeClass:''])をサポートします.
(3).mpvueは動的配列(:class="{‘career’:isTest},‘bottom’")をサポートする.
(4).mpvueバインドされていないオブジェクトの形式(:class="ClassObject")
このようなオブジェクトをバインドする方法はvueである.jsでいいですが、mpVueではできません.公式のヒントに従ってcomputedメソッドでclassまたはstyle文字列を生成し、ページに挿入することができます.
mpvueに適した形式コードに変更:
二.スタイルバインド方式
(1). mpvueはテンプレートで直接使用することをサポートします:style
(2).mpvueはマルチグループバインドをサポートします(アルパカの書き方)
(3).mpvueはバインドオブジェクトをサポートしていません
このようにオブジェクトを直接バインドする方法はmpvueでも不可能であり,修正が必要である.公式ドキュメントのヒントに基づいて、mpvueの変更を以下のようにサポートします.
オブジェクトフォーマットのstyleを文字列フォーマットに変換する方法:
まとめ:公式に指摘されているベストプラクティスに基づいてmpvueでサポートされている構文を選択し、パフォーマンスを考慮して、これに過度に依存しないことをお勧めします.最後に、コンポーネント上でClassを使用してStyleにバインドすることは、公式にはサポートされていません.
一.classバインド方式(1).mpvueサポート:class="{active:isActive}"
.career{
background: red;
}
(2).mpvueは三元式(v-bind:class="[isActive?activeClass:''])をサポートします.
data () {
return {
isTest:ture
}
}
(3).mpvueは動的配列(:class="{‘career’:isTest},‘bottom’")をサポートする.
data () {
return {
isTest:ture
}
}
.career{
background: red;
}
. bottom{
background: yellow;
}
(4).mpvueバインドされていないオブジェクトの形式(:class="ClassObject")
.career{
background: red;
}
このようなオブジェクトをバインドする方法はvueである.jsでいいですが、mpVueではできません.公式のヒントに従ってcomputedメソッドでclassまたはstyle文字列を生成し、ページに挿入することができます.
mpvueに適した形式コードに変更:
computed: {
computedClassObject () {
return 'career'// : computed class
}
},
二.スタイルバインド方式
(1). mpvueはテンプレートで直接使用することをサポートします:style
(2).mpvueはマルチグループバインドをサポートします(アルパカの書き方)
data(){
return {
bgColor: 'red',
fontSize: 18,
}
}
(3).mpvueはバインドオブジェクトをサポートしていません
data () {
return {
styleObj: {
type: Object,
default: function () {
return {
background: 'black',
color: "yellow"
}
}
}
}
},
このようにオブジェクトを直接バインドする方法はmpvueでも不可能であり,修正が必要である.公式ドキュメントのヒントに基づいて、mpvueの変更を以下のようにサポートします.
computed: {
computedClassObject () {
return this.showJson({
background: 'red',
color:"yellow"
})
}
}
オブジェクトフォーマットのstyleを文字列フォーマットに変換する方法:
style
showJson(style){
for(let i in style){
s.push(i+':'+style[i]);
}
s = s.join(';')
return s
}
まとめ:公式に指摘されているベストプラクティスに基づいてmpvueでサポートされている構文を選択し、パフォーマンスを考慮して、これに過度に依存しないことをお勧めします.最後に、コンポーネント上でClassを使用してStyleにバインドすることは、公式にはサポートされていません.