Ano ang Bago sa Vue 3.3?

Ano ang Bago sa Vue 3.3?
Ang mga mambabasang tulad mo ay tumutulong sa pagsuporta sa MUO. Kapag bumili ka gamit ang mga link sa aming site, maaari kaming makakuha ng isang affiliate na komisyon. Magbasa pa.

Ang Vue.js, isang kilalang JavaScript framework para sa paggawa ng mga user interface, ay nagpapakilala ng mga nakakaakit na feature at pagpapahusay sa bawat bagong release.





pinakamahusay na website upang bumili ng mga bahagi ng computer

Ang Vue 3.3 ay walang pagbubukod dahil ipinakilala nito ang isang buong host ng bagong pag-andar.





1. Macros: Suporta para sa Mga Na-import at Kumplikadong Uri

Ang mga Macros, isang makapangyarihang tool sa loob ng Vue.js, ay nagbibigay-daan sa iyong tukuyin ang magagamit muli na mga snippet ng template. Sa Vue 3.3, nakakakuha ang mga macro ng suporta para sa mga na-import na bahagi at kumplikadong mga uri, na nagpapahusay sa kanilang versatility at reusability.





MAKEUSEOF VIDEO OF THE DAY MAG-SCROLL PARA MAGPATULOY SA NILALAMAN

Isaalang-alang ang sumusunod na halimbawa:

 <template> 
  <macro-example>
    <imported-component />
    <complex-type :data="complexData" />
  </macro-example>
</template>
<macro name="macro-example">
  <div>
    <slot></slot>
  </div>
</macro>

Sa snippet ng code sa itaas, ang macro-halimbawa tinatanggap ng macro ang anumang nilalamang inilagay sa loob nito, kabilang ang mga na-import na bahagi tulad ng at mga kumplikadong uri tulad ng . Nagbibigay-daan ito sa paglikha ng mga naaangkop at magagamit muli na mga snippet ng template.



2. Mga Pangkalahatang Bahagi: Pagsuporta sa Iba't ibang Uri ng Data

Ipinakilala ng Vue 3.3 ang suporta para sa mga generic na bahagi, na nagbibigay-daan sa paglikha ng mga magagamit muli na bahagi na maaaring walang putol na makipag-ugnayan sa magkakaibang uri ng data. Ang tampok na ito ay nagpapatunay lalo na mahalaga kapag bumubuo ng mga bahagi na kailangang pangasiwaan ang iba't ibang uri ng data nang hindi nakompromiso ang kaligtasan ng uri.

Narito ang isang halimbawa ng isang generic na bahagi:





 <template> 
  <div>
    <slot :item="data"></slot>
  </div>
</template>
<script>
export default {
  props: {
    data: {
      type: null, // Accepts any type
      required: true,
    },
  },
};
</script>

Sa loob ng ibinigay na code, ang datos ang uri ng prop ay nakatakda sa wala , na nagbibigay-daan upang tanggapin ang anumang uri ng data. Dahil dito, ang bahaging ito ay maaaring walang putol na pangasiwaan ang iba't ibang uri ng data habang tinitiyak ang uri ng kaligtasan kapag ginagamit ang prop sa loob ng bahagi.

3. Pinahusay na Syntax para sa defineEmits

Ang defineEmits pinahihintulutan ng function ang tahasang pagpapahayag ng mga kaganapang inilalabas ng isang bahagi. Sa Vue 3.3, nakakatanggap ang function na ito ng ergonomic syntax update, na nagpapahusay sa pagiging madaling mabasa ng code. Maaari mo na ngayong tukuyin ang Emits gamit ang isang object notation, na nagbibigay ng mas malinaw na representasyon ng mga emitted na kaganapan sa loob ng component.





Isaalang-alang ang sumusunod na halimbawa:

 <script> 
import { defineEmits } from 'vue';
export default {
  emits: defineEmits(['click', 'input']),
};
</script>

Sa code snippet na ito, ang naglalabas ang ari-arian ay gumagamit ng defineEmits function kasama ng isang hanay ng mga pangalan ng kaganapan. Tinitiyak ng diskarteng ito ang isang maigsi at naiintindihan na deklarasyon ng mga inilabas na kaganapan ng bahagi, na higit na nagpapahusay sa pagiging madaling mabasa ng code.

4. Mga Na-type na Puwang na May DefineSlots

Ipinakilala ng Vue 3.3 ang isang function ng nobela na tinatawag defineSlots na nagbibigay-daan sa tumpak na detalye ng mga uri ng slot sa loob ng isang bahagi. Ang tampok na ito ay nagpapatibay ng kaligtasan ng uri sa mga bahagi at pinapadali ang pinahusay na suporta ng IDE para sa nilalaman ng slot:

kung paano buksan ang mga zip file sa android
 <template> 
  <div>
    <slot name="header" :data="headerData" />
    <slot :data="defaultData" />
  </div>
</template>
<script>
import { defineSlots } from 'vue';
export default {
  slots: defineSlots({
    header: {
      data: {
        type: Object,
 required: true,
      },
    },
    default: {
      data: {
        type: String,
        required: false,
        default: 'Default Slot Content',
      },
    },
  }),
};
</script>

Sa loob ng code snippet, ang mga puwang ang ari-arian ay gumagamit ng defineSlots function upang tukuyin ang mga uri ng mga puwang na ginamit sa bahagi. Binibigyan nito ang mga developer ng mahusay na pagsusuri sa uri at autocompletion habang ginagamit ang mga slot.

5. Pinasimpleng Access sa Reactive Props

Ang mga reaktibong props Ang tampok na destructure na ipinakilala sa Vue 3.3 ay pinapasimple ang pag-access sa mga reaktibong props sa loob ng function ng pag-setup ng isang bahagi. Pinapahusay ng pagpapahusay na ito ang proseso ng pag-access sa mga reaktibong props, pagpapahusay ng pagiging madaling mabasa at pagiging maikli ng code.

Halimbawa:

 <script> 
import { reactive } from 'vue';

export default {
  props: {
    user: Object,
  },
  setup(props) {
    const { user } = props; // Destructuring reactive props
    
    // Utilizing the destructured user object
    console.log(user.name);
    
    // ...
  },
};
</script>

Sinisira ng snippet ng code na ito ang gumagamit prop sa loob ng setup function, na nagbibigay-daan sa direktang pag-access sa mga katangian nito. Pinapasimple nito ang code at pinahuhusay nito ang pagiging madaling mabasa.

paano malalaman kung sino ang nag-block sa iyo sa fb

6. defineModel: Pinapasimple ang Two-Way Binding Components

Ang experimental defineModel pinapasimple ng function sa loob ng Vue 3.3 ang paglikha ng mga two-way binding components . Nagbibigay ito ng maginhawang diskarte sa pagtukoy sa modelValue prop at update:modelValue kaganapang karaniwang ginagamit sa v-model bindings.

Isaalang-alang ang halimbawang ito:

 <script> 
import { defineModel } from 'vue';
export default {
  props: {
    modelValue: String,
    'onUpdate:modelValue': Function,
  },
  emits: ['update:modelValue'],
  setup(props, { emit }) {
    const model = defineModel(() => [props.modelValue, emit('update:modelValue')]);

    // Accessing the model.value and model.update function
    console.log(model.value);
    model.update('New value');
    
    // ...
  },
};
</script>

Tinutukoy ng snippet ng code na ito ang modelValue prop at update:modelValue kaganapan gamit ang defineModel function. Pinapasimple nito ang paglikha ng mga two-way binding na bahagi, na ginagawang mas maigsi at mas madaling basahin ang code.

Pagpapalabas ng Seamless Development Posibilities

Ang Vue 3.3 ay nagpapakilala ng isang hanay ng mga nakakaakit na feature at pagpapahusay, na nagpapahusay sa karanasan sa pag-develop ng Vue.js. Kasama sa mga update ang suporta para sa mga na-import at kumplikadong uri sa mga macro, generic na bahagi, at mga pang-eksperimentong feature tulad ng mga reaktibong prop.

Nag-aalok ang mga karagdagan na ito ng mas mataas na flexibility, kaligtasan ng uri, at kaginhawahan habang ginagawa mo ang iyong mga application ng Vue.