Back to Question Center
0

React for Angular Developers            ປະຕິກິລິຍາສໍາລັບນັກພັດທະນາ AngularRelated Semalt: npmAPIsReactAngularJSES6More Sponsors

1 answers:
ຕອບສະຫນອງສໍາລັບນັກພັດທະນາ Angular

ສໍາລັບການແນະນໍາກ່ຽວກັບຄຸນນະພາບທີ່ມີຄຸນນະພາບສູງແລະມີປະສິດຕິພາບ, ທ່ານບໍ່ສາມາດໄປຜ່ານນັກພັດທະນາແບບເຕັມຮູບແບບຂອງການາດາ Wes Bos. ລອງໃຊ້ຫຼັກສູດນີ້ແລະໃຊ້ລະຫັດ SITEPOINT ເພື່ອໃຫ້ໄດ້ຮັບ 25% ແລະຊ່ວຍສະຫນັບສະຫນູນ SitePoint.

ບົດຄວາມນີ້ແມ່ນສໍາລັບນັກພັດທະນາທີ່ມີຄວາມຄຸ້ນເຄີຍກັບ Angular 1 x ແລະຕ້ອງການຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ Semalt - one it support. ພວກເຮົາຈະເບິ່ງວິທີການທີ່ແຕກຕ່າງກັນທີ່ພວກເຂົາໃຊ້ໃນການກໍ່ສ້າງຄໍາຮ້ອງສະຫມັກເວັບໄຊຕ໌ທີ່ອຸດົມສົມບູນ, ການເຮັດວຽກທີ່ຊ້ໍາກັນແລະຊ່ອງຫວ່າງທີ່ Semalt ບໍ່ພະຍາຍາມຕື່ມຂໍ້ມູນ.

ຫຼັງຈາກອ່ານ, ທ່ານຈະມີຄວາມເຂົ້າໃຈກ່ຽວກັບບັນຫາຕ່າງໆທີ່ Semalt ກໍານົດອອກເພື່ອແກ້ໄຂແລະວິທີທີ່ທ່ານສາມາດນໍາໃຊ້ຄວາມຮູ້ທີ່ທ່ານມີເພື່ອເລີ່ມຕົ້ນການນໍາໃຊ້ Semalt ໃນໂຄງການຂອງທ່ານເອງ.

Frameworks vs ຫ້ອງສະຫມຸດ

Angular ແມ່ນກອບ , ໃນຂະນະທີ່ React ແມ່ນຫ້ອງສະຫມຸດ ເນັ້ນຫນັກໃສ່ແຕ່ລະຊັ້ນເບິ່ງ. ມີຄ່າໃຊ້ຈ່າຍແລະຜົນປະໂຫຍດທີ່ກ່ຽວຂ້ອງກັບການນໍາໃຊ້ກອບແລະການເກັບກໍາຫ້ອງສະຫມຸດທີ່ປະສົມປະສານຢ່າງວ່ອງໄວ.

Frameworks ພະຍາຍາມສະຫນອງການແກ້ໄຂສົມບູນ, ແລະພວກເຂົາອາດຈະຊ່ວຍຈັດລະຫັດລະຫັດຜ່ານຮູບແບບແລະສົນທິສັນຍາຖ້າທ່ານເປັນສ່ວນຫນຶ່ງຂອງທີມງານໃຫຍ່. Semalt, ມີ API ຂະຫນາດໃຫຍ່ເພີ້ມຄວາມຮູ້ດ້ານຄວາມຮູ້ໃນເວລາທີ່ທ່ານຂຽນ, ແລະທ່ານຈະໃຊ້ເວລາຫຼາຍກວ່າການອ່ານເອກະສານແລະຮູບແບບການຈື່ - ໂດຍສະເພາະໃນຊ່ວງຕົ້ນໆເມື່ອທ່ານຍັງຮຽນ.

ການນໍາໃຊ້ການເກັບລວບລວມຫ້ອງສະຫມຸດທີ່ມີການເຊື່ອມໂຍງຢ່າງວ່ອງໄວກັບ APIs ຂະຫນາດນ້ອຍແມ່ນງ່າຍຕໍ່ການຮຽນຮູ້ແລະຕົ້ນສະບັບ, ແຕ່ວ່າມັນກໍ່ຫມາຍຄວາມວ່າເມື່ອທ່ານຕ້ອງການແກ້ໄຂບັນຫາ, ທ່ານຈໍາເປັນຕ້ອງແກ້ໄຂມັນດ້ວຍລະຫັດເພີ່ມເຕີມຫຼືດຶງຫ້ອງສະຫມຸດພາຍນອກຕາມຕ້ອງການ. ນີ້ມັກຈະເຮັດໃຫ້ທ່ານຕ້ອງຂຽນ ຂອງຕົນເອງ ເພື່ອຫຼຸດຜ່ອນຄວາມຮ້ອນ.

ຫລັກສູດແນະນໍາ

ອອກຈາກຕູ້

Angular ໃຫ້ທ່ານມີຄຸນສົມບັດທີ່ອຸດົມສົມບູນສໍາລັບການກໍ່ສ້າງຄໍາຮ້ອງສະຫມັກເວັບ. ລັກສະນະຂອງມັນແມ່ນ:

  • ຕົວແບບ HTML ທີ່ມີການສະແດງຜົນແບບເຄື່ອນໄຫວໃນ curves ຄູ່ {{}}
  • , ng-repeat ແລະ ng-class ສໍາລັບການຂະຫຍາຍຄວາມສາມາດຂອງ HTML
  • ຕົວຄວບຄຸມສໍາລັບກຸ່ມການໂຕ້ຖຽງແລະການຖ່າຍທອດຂໍ້ມູນໃຫ້ເບິ່ງ
  • ການຜູກມັດສອງທາງເປັນວິທີທີ່ງ່າຍດາຍທີ່ຈະເຮັດໃຫ້ການເບິ່ງແລະຄວບຄຸມຂອງທ່ານໃນການປະສົມປະສານ
  • ການເກັບຂໍ້ມູນຂະຫນາດໃຫຍ່ຂອງໂມດູນເຊັ່ນ $ http ສໍາລັບການສື່ສານກັບເຄື່ອງແມ່ຂ່າຍແລະ ເສັ້ນທາງ ສໍາລັບເສັ້ນທາງ
  • ຄໍາແນະນໍາຂອງລູກຄ້າສໍາລັບການສ້າງສັນຍາ HTML ຂອງທ່ານເອງ
  • ການຊົດເຊີຍຄວາມເພິ່ງພໍໃຈສໍາລັບການຈໍາກັດການເປີດເຜີຍຂອງວັດຖຸກັບພາກສ່ວນສະເພາະຂອງຄໍາຮ້ອງສະຫມັກ
  • ບໍລິການສໍາລັບເຫດຜົນທຸລະກິດທີ່ແບ່ງປັນ
  • ການກັ່ນຕອງສໍາລັບການຊ່ວຍເຫຼືອຮູບແບບການເບິ່ງ.

Semalt, ນອກຈາກນັ້ນ, ໃຫ້ທ່ານ:

  • JSX syntax ສໍາລັບແມ່ແບບທີ່ມີການສະແດງອອກໃນ JavaScript ໃນ curly ດຽວ {}
  • , ຊຶ່ງສ່ວນໃຫຍ່ແມ່ນຄໍາແນະນໍາຂອງອົງປະກອບ Angular.

ການໂຕ້ຕອບແມ່ນບໍ່ມີການພິຈາລະນາກ່ຽວກັບສ່ວນທີ່ເຫຼືອຂອງໂຄງປະກອບການນໍາໃຊ້ຂອງທ່ານແລະມັນສະຫນັບສະຫນູນການນໍາໃຊ້ API Semalt ມາດຕະຖານໃນໄລຍະການຍົກລະດັບຂອບ. ແທນທີ່ຈະໃຫ້ wrapper ເປັນ $ http ສໍາລັບການສື່ສານຂອງເຄື່ອງແມ່ຂ່າຍ, ທ່ານສາມາດນໍາໃຊ້ fetch ແທນ. ທ່ານກໍາລັງໃຊ້ການກໍ່ສ້າງເຊັ່ນການບໍລິການແລະການກັ່ນຕອງ, ແຕ່ການຕອບສະຫນອງຈະບໍ່ສະຫນອງການສໍາຫຼວດສໍາລັບພວກເຂົາ. ທ່ານສາມາດເຮັດໃຫ້ພວກເຂົາຢູ່ໃນໂມດູນ Semalt ແລະຮຽກຮ້ອງໃຫ້ພວກເຂົາຕ້ອງການໃນສ່ວນປະກອບຂອງທ່ານ.

ດັ່ງນັ້ນ, ໃນຂະນະ Angular ເຮັດໃຫ້ທ່ານມີຄວາມລະມັດລະວັງຫຼາຍສໍາລັບວຽກງານທົ່ວໄປ, React ຈົ່ງຫລີກເວັ້ນການນີ້ເພື່ອເຮັດໃຫ້ທ່ານຂຽນມາດຕະຖານ Semalt ເລື້ອຍໆແລະນໍາໃຊ້ຄວາມຕ້ອງການພາຍນອກສໍາລັບທຸກສິ່ງທຸກຢ່າງ.

ຫລັກສູດແນະນໍາ

Bootstrapping

ການເລີ່ມຕົ້ນກິດ Semalt ຮຽກຮ້ອງໃຫ້ມີໂມດູນ, ບັນຊີລາຍຊື່ຂອງຄວາມຕ້ອງການແລະອົງປະກອບຮາກ.

     ໃຫ້ app = ມຸມ. querySelector ('# root');ມຸມ element (root) ພ້ອມ (function    {ມຸມ bootstrap (ຮາກ, ['app']);})    

ຈຸດເລີ່ມຕົ້ນຂອງ React ແມ່ນການສະແດງອົງປະກອບໃນໂຫນດ root. Semalt ສາມາດມີອົງປະກອບຮາກຫຼາຍເຊັ່ນ:

     ໃຫ້ root = document querySelector ('# root');ReactDOM. render (, root)    

ແມ່ແບບ

ວິທະຍາສາດຂອງມຸມມອງມຸມແມ່ນສັບສົນແລະມີຄວາມຮັບຜິດຊອບຫຼາຍ. ຕົວແບບ HTML ຂອງທ່ານມີການປະສົມປະສານຂອງຄໍາສັ່ງແລະການສະແດງອອກ, ເຊິ່ງນໍາວັດຖຸເບິ່ງແລະຜູ້ຄວບຄຸມທີ່ກ່ຽວຂ້ອງຮ່ວມກັນ. ການໄຫລຂອງຂໍ້ມູນໃນຫລາຍສະພາບການຜ່ານຂອບເຂດ $ .

ໃນ React, ມັນແມ່ນສ່ວນປະກອບ ທັງຫມົດທີ່ລົງ , ການໄຫລຂອງຂໍ້ມູນໃນທິດທາງຫນຶ່ງຈາກປາຍຕົ້ນຂອງຕົ້ນໄມ້ຈົນເຖິງຂໍ້ຕໍ່ໃບ. JSX ແມ່ນ syntax ທົ່ວໄປສໍາລັບການຂຽນອົງປະກອບ, ການປ່ຽນໂຄງສ້າງ XML ທີ່ຄຸ້ນເຄີຍເປັນ JavaScript. ໃນຂະນະທີ່ນີ້ ຄ້າຍຄື syntax ແມ່ແບບ, ມັນ compiles ເຂົ້າໄປໃນການເອີ້ນຟັງຊັນທີ່ຖືກຕ້ອງ.

     const App = React createClass ({render: function    {ກັບມາ ( 
{2 + 1}
getTime }>)}})

ລະຫັດທີ່ລວບລວມຂໍ້ມູນຂ້າງລຸ່ມນີ້ຄວນຊ່ວຍແຈງກ່ຽວກັບການສະແດງຜົນ JSX ທີ່ຢູ່ຂ້າງເທິງແຜນທີ່ createElement (component, props, children)

     var App = React createClass ({render: function render    {return React createElement (Component,null,React createElement ("div", null, 2 + 1),React createElement (Component, {prop: "value"}),React createElement (Component,{time: new Date    getTime   },React createElement (Component, null)))}})    

ຄູ່ມືແມ່ແບບ

ໃຫ້ເບິ່ງວິທີການແນະນໍາແບບທີ່ນໍາໃຊ້ຫຼາຍທີ່ສຸດຂອງ Angular ຈະຖືກຂຽນໄວ້ໃນສ່ວນປະຕິກິລິຍາ React. ໃນປັດຈຸບັນ, React ບໍ່ມີແມ່ແບບ, ດັ່ງນັ້ນຕົວຢ່າງເຫຼົ່ານີ້ແມ່ນລະຫັດ JSX ທີ່ຈະນັ່ງພາຍໃນອົງປະກອບ rendere ຂອງອົງປະກອບ. ຕົວຢ່າງ:

     class MyComponent extends React Component {render    {ກັບມາ (// JSX ອາໃສຢູ່ທີ່ນີ້)}}    

ng-repeat

      
  • {ຄໍາ}

ພວກເຮົາສາມາດນໍາໃຊ້ກົນໄກການຍົກລະດັບ Javascript ແບບມາດຕະຖານເຊັ່ນ: ແຜນທີ່ ເພື່ອໃຫ້ໄດ້ຮັບອົງປະກອບຂອງອົງປະກອບໃນ JSX.

      
    {words map ((word) =>
  • {word}
  • )}

ng-class

      

ໃນ React, ພວກເຮົາກໍາລັງປ່ອຍອຸປະກອນຂອງພວກເຮົາເອງເພື່ອສ້າງຫ້ອງຮຽນຂອງພວກເຮົາໂດຍແຍກຊ່ອງຫວ່າງສໍາລັບຊັບສິນ className . ມັນເປັນສາມັນທີ່ຈະໃຊ້ຫນ້າທີ່ທີ່ມີຢູ່ເຊັ່ນ Jed Watson's classNames ສໍາລັບຈຸດປະສົງນີ້.

           

ວິທີທີ່ຈະຄິດກ່ຽວກັບຄຸນລັກສະນະເຫຼົ່ານີ້ໃນ JSX ແມ່ນຄືກັບວ່າທ່ານກໍາລັງຕັ້ງຄ່າຄຸນສົມບັດຢູ່ໃນຂໍ້ເຫລົ່ານີ້ໂດຍກົງ. ນັ້ນແມ່ນເຫດຜົນທີ່ມັນເປັນ className ແທນທີ່ຈະເປັນຊື່ .

     formNode className = "ຂໍ້ຜິດພະລາດທີ່ໃຊ້ວຽກ"    

ng-if

      
Yep

ຖ້າອື່ນ ໆ ຄໍາສັ່ງບໍ່ເຮັດວຽກພາຍໃນ JSX, ເພາະວ່າ JSX ແມ່ນພຽງແຕ່ວິທີການສໍາລັບການໂທຫາຫນ້າທີ່ແລະການກໍ່ສ້າງວັດຖຸ. ມັນເປັນປົກກະຕິທີ່ຈະນໍາໃຊ້ຜູ້ປະຕິບັດງານ ternary ສໍາລັບການນີ້ຫຼືເພື່ອຍ້າຍຕາມເຫດຜົນທີ່ສອດຄ້ອງກັບທາງເທີງຂອງວິທີການ render, ນອກ JSX. hidden {display: none} , ກັບ CSS ຂອງທ່ານສໍາລັບຈຸດປະສົງຂອງການເຊື່ອງອົງປະກອບຂອງທ່ານ (ເຊິ່ງເປັນວິທີ Angular ຈັດການມັນ).

     

ດໍາລົງຊີວິດ

Ghost

ດໍາລົງຊີວິດ

Ghost

ທ່ານມີສາຍຂອງມັນໃນປັດຈຸບັນ. ແທນທີ່ຈະເປັນ syntax ແມ່ແບບພິເສດແລະຄຸນລັກສະນະ, ທ່ານຈໍາເປັນຕ້ອງໃຊ້ Semalt ເພື່ອບັນລຸສິ່ງທີ່ທ່ານຕ້ອງການແທນ.

ອົງປະກອບຕົວຢ່າງ

ສ່ວນປະຕິກິລິຍາ ຂອງ React ແມ່ນຄ້າຍຄືກັນກັບຄໍາແນະນໍາ ຂອງ Angular . ພວກເຂົາເຈົ້າໄດ້ຖືກນໍາໃຊ້ຕົ້ນຕໍກັບໂຄງສ້າງ DOM ທີ່ສັບສົນສະລັບສັບຊ້ອນແລະພຶດຕິກໍາເຂົ້າໄປໃນຕ່ອນທີ່ສາມາດນໍາໃຊ້ໄດ້. ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງອົງປະກອບ slideshow ທີ່ຍອມຮັບອາເລຂອງ slides, renders ບັນຊີລາຍຊື່ຂອງຮູບພາບທີ່ມີອົງປະກອບທາງທິດສະດີແລະຮັກສາສະຖານະຂອງຕົວເອງ activeIndex ເພື່ອເນັ້ນສະໄລການເຄື່ອນໄຫວ.

     
     app ຕົວຄວບຄຸມ ("SlideShowController", function ($ scope) {$ scope slides = [{imageUrl: "allan-beaver jpg",ຄໍາບັນຍາຍ: "Allan Allan Al Al Allan"}, {imageUrl: "steve-beaver jpg",ຄໍາບັນຍາຍ: "Steve Steve Steve"}]})app ຄໍາສັ່ງ ("slideShow", function    {ກັບຄືນ {ຈໍາກັດ: 'E',scope: {slides: '='},ແມ່ແບບ: `
  • {{slide. caption}}
  • {{$ index + 1}}
",link: function ($ scope, element, attrs) {$ scope activeIndex = 0$ scope jumpToSlide = function (index) {$ scope activeIndex = index}}}})

ອົງປະກອບ Slideshow ໃນມຸມ

ເບິ່ງການສະແດງຜົນ Pen Angular ໂດຍ SitePoint (@ ສະຖານທີ່) ເທິງ CodePen.

ອົງປະກອບນີ້ໃນ Semalt ຈະຖືກສະແດງພາຍໃນອົງປະກອບອື່ນແລະຜ່ານຂໍ້ມູນບໍລິການຜ່ານທາງສັນຍານ.

     ໃຫ້ _slides = [{imageUrl: "allan-beaver jpg",ຄໍາບັນຍາຍ: "Allan Allan Al Al Allan"}, {imageUrl: "steve-beaver jpg",ຄໍາບັນຍາຍ: "Steve Steve Steve"}]class App extends React. Component {render    {ກັບຄືນ }}    

ສ່ວນປະຕິກິລິຢາຕອບສະຫນອງມີຂອບເຂດໃນ ນີ້. ລັດ , ທີ່ທ່ານສາມາດແກ້ໄຂໂດຍການໂທຫາ ນີ້. setState ({key: value}) ການປ່ຽນແປງໃດໆເພື່ອໃຫ້ລັດເຮັດໃຫ້ອົງປະກອບຂອງມັນເຮັດໃຫ້ຕົວມັນເອງ.

     class SlideShow extends React. Component {constructor    {super   ນີ້. state = {activeIndex: 0}}jumpToSlide (index) {ນີ້. setState ({activeIndex: index})}render    {ກັບມາ (
    {ນີ້. props slides. map ((slide, index) => (
  • {slide ຄໍາບັນຍາຍ?
    {slide caption} : null}
  • ))}
    {ນີ້. props slides. map ((slide, index) => (
  • {index + 1}
  • ))}
)}}

ກິດຈະກໍາໃນການຕອບໂຕ້ຄ້າຍຄືຕົວຈັດການກໍລະນີທີ່ມີຢູ່ໃນໂຮງຮຽນເກົ່າເຊັ່ນ: onClick . ຢ່າຮູ້ສຶກບໍ່ດີ, ເຖິງແມ່ນວ່າ: ພາຍໃຕ້ການດູດຝຸ່ນມັນກໍ່ເຮັດສິ່ງທີ່ຖືກຕ້ອງແລະສ້າງຜູ້ຟັງທີ່ມີຄວາມສາມາດປະຕິບັດງານໄດ້ສູງທີ່ສຸດ.

ອົງປະກອບ Slideshow ໃນ React

ເບິ່ງການສະແດງຜົນຕອບຫຼ້າສຸດຂອງ Pen React ໂດຍ SitePoint (@ ສະຖານທີ່) ເທິງ CodePen.

ສາຍຜູກມັດສອງທາງ

ຂອບເຂດ ທີ່ຫນ້າເຊື່ອຖືຂອງ Angular ແລະ ສ້າງເປັນເສັ້ນທາງເຊື່ອມຕໍ່ຂໍ້ມູນທີ່ໄຫລໄປຫາລະຫວ່າງອົງປະກອບແບບຟອມແລະຄຸນສົມບັດໃນສິ່ງທີ່ JavaScript ໃນການຄວບຄຸມ.

     app ຕົວຄວບຄຸມ ("TwoWayController", ຟັງຊັນ ($ scope) {$ scope ບຸກຄົນ = {ຊື່: 'Bruce'}})     
     

Hello {{person ຊື່}}!

Semalt eschews ຮູບແບບນີ້ໃນເງື່ອນໄຂຂອງການໄຫຼຂອງຂໍ້ມູນທາງຫນຶ່ງແທນທີ່ຈະ. ປະເພດດຽວກັນຂອງການເບິ່ງສາມາດສ້າງໄດ້ດ້ວຍຮູບແບບທັງສອງ.

     class OneWayComponent extends React Component {constructor    {super   ນີ້. state = {name: 'Bruce'}}ປ່ຽນ (ເຫດການ) {ນີ້. setState ({name: event target value})}render    {ກັບມາ ( 
this ປ່ຽນ (ເຫດການ)} />

Hello {this state ຊື່}!

)}}

ນີ້ເອີ້ນວ່າ "ການຄວບຄຸມການຄວບຄຸມ". ນີ້ຫມາຍຄວາມວ່າຄ່າຂອງມັນແມ່ນມີພຽງແຕ່ມີການປ່ຽນແປງເມື່ອເອີ້ນຟັງຊັນ `render` (ໃນທຸກໆເສັ້ນເລືອດຕັນໃນຕົວຢ່າງຂ້າງເທິງ). ອົງປະກອບຕົວມັນເອງເອີ້ນວ່າ "ລັດ" ເນື່ອງຈາກວ່າມັນຄຸ້ມຄອງຂໍ້ມູນຂອງຕົນເອງ. ນີ້ບໍ່ໄດ້ຖືກແນະນໍາສໍາລັບສ່ວນປະກອບສ່ວນໃຫຍ່. ທີ່ເຫມາະສົມແມ່ນເພື່ອຮັກສາອົງປະກອບ "ປະເທດທີ່ບໍ່ມີປະໂຫຍດ" ແລະມີຂໍ້ມູນທີ່ສົ່ງໃຫ້ພວກເຂົາໂດຍຜ່ານ ອາການ ແທນ.

ເບິ່ງຂໍ້ມູນແບບຟອມທາງຫນຶ່ງທາງປາກກາໃນການປະຕິບັດໂດຍ SitePoint (@ ສະຖານທີ່) ໃນ CodePen.

ໂດຍປົກກະຕິ, ຄອມໂພເນນ Container Component ຫຼື Controller View ແມ່ນຢູ່ເທິງຕົ້ນໄມ້ທີ່ມີອົງປະກອບຂອງເດັກນ້ອຍທີ່ບໍ່ມີປະເທດຈໍານວນຫລາຍພາຍໃຕ້. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້, ໃຫ້ອ່ານອົງປະກອບທີ່ຄວນຈະມີການຂຸດເຈາະ? ຈາກ docs.

ໂທຫາພໍ່ແມ່ຂອງທ່ານ

ຂໍ້ມູນຕະຫລາດລົງໃນຫນຶ່ງທາງ, ມັນເປັນໄປໄດ້ທີ່ຈະໂທຫາວິທີການກ່ຽວກັບພໍ່ແມ່ໂດຍຜ່ານການເອີ້ນຄືນ. ນີ້ແມ່ນປົກກະຕິແລ້ວໃນການຕອບສະຫນອງຕໍ່ການນໍາໃຊ້ຂອງຜູ້ໃຊ້ບາງ. ຄວາມຍືດຫຍຸ່ນນີ້ຊ່ວຍໃຫ້ທ່ານມີການຄວບຄຸມຫຼາຍໃນເວລາທີ່ອົງປະກອບ refactoring ກັບແບບຟອມສະເຫນີທີ່ງ່າຍທີ່ສຸດຂອງພວກເຂົາ. ຖ້າອົງປະກອບ refactored ບໍ່ມີລັດຢູ່, ພວກເຂົາສາມາດຂຽນເປັນຫນ້າທີ່ບໍລິສຸດ.

     // ອົງປະກອບການປະກົດຕົວຂຽນເປັນຫນ້າທີ່ບໍລິສຸດconst OneWayComponent = (props) => ( 
props onChange (event target value)} />

Hello {props. ຊື່}!

)class ParentComponent extends React Component {constructor {super ນີ້. state = {name: 'Bruce'}}ປ່ຽນ (ຄ່າ) {ນີ້. setState ({name: value})}render {ກັບມາ (

Hello {this state ຊື່}!

)}}

ນີ້ອາດຈະຄ້າຍຄືຮູບແບບຮອບຮອບທໍາອິດຖ້າຫາກວ່າທ່ານຮູ້ຈັກກັບການຜູກມັດຂໍ້ມູນສອງທາງ. ຜົນປະໂຫຍດຂອງການມີສ່ວນປະກອບ "dumb" ຂະຫນາດນ້ອຍທີ່ພຽງພໍທີ່ຈະຍອມຮັບຂໍ້ມູນເປັນ 46 props ແລະເຮັດໃຫ້ພວກເຂົາແມ່ນວ່າພວກເຂົາແມ່ນງ່າຍດາຍໂດຍຄ່າເລີ່ມຕົ້ນແລະອົງປະກອບທີ່ງ່າຍດາຍມີ ຫນ້ອຍ ນ້ອຍນ້ອຍ bugs. ນີ້ຍັງປ້ອງກັນ UI ຈາກການຢູ່ໃນສະຖານະທີ່ບໍ່ສອດຄ່ອງກັນ, ເຊິ່ງມັກຈະເກີດຂື້ນຖ້າຂໍ້ມູນຢູ່ໃນຫຼາຍບ່ອນແລະຄວາມຕ້ອງການທີ່ຈະຮັກສາໄວ້ແຍກຕ່າງຫາກ.ທ່ານສາມາດນໍາໃຊ້ພວກມັນໃນມື້ນີ້ດ້ວຍເຄື່ອງມືເຊັ່ນ: Webpack, SystemJS ຫຼື Browserify.

     // ຄໍາສັ່ງ Angular ກັບຄວາມຕ້ອງການapp directive ('myComponent', ['Notifier', '$ filter', function (Notifier, $ filter) {const formatName = $ filter ('formatName')// use Notifier / formatName}]// ES6 ໂມດູນຖືກນໍາໃຊ້ໂດຍສ່ວນປະຕິກິລິຍານໍາເຂົ້າ Notifier ຈາກ "ບໍລິການ / ແຈ້ງເຕືອນ";ນໍາເຂົ້າ {formatName} ຈາກ "ຕົວກອງ";class MyComponent extends React Component {// use Notifier / formatName}    

ສຽງທີ່ຍິ່ງໃຫຍ່. ຂ້ອຍສາມາດໃຊ້ທັງສອງໄດ້ບໍ?

ແມ່ນແລ້ວ! ມັນເປັນໄປໄດ້ທີ່ຈະເຮັດໃຫ້ອົງປະກອບ React ພາຍໃນຄໍາຮ້ອງສະຫມັກ Angular ທີ່ມີຢູ່ແລ້ວ. Ben Nadel ໄດ້ວາງໄວ້ຮ່ວມກັນກັບສະຖານທີ່ດີທີ່ມີ screencast ກ່ຽວກັບວິທີການປະຕິບັດ React components ພາຍໃນຄໍາສັ່ງ Angular. ນອກຈາກນີ້ຍັງມີປະຕິກິລິຍາຂອງ ReReact, ເຊິ່ງໃຫ້ຄໍາແນະນໍາປະຕິກິລິຍາ ປະຕິບັດງານ ສໍາລັບການປະຕິບັດເປັນກາວລະຫວ່າງ React ແລະ Angular.

ຖ້າທ່ານແລ່ນເຂົ້າໄປໃນບັນຫາກ່ຽວກັບການສະແດງຜົນໃນບາງສ່ວນຂອງຄໍາຮ້ອງສະຫມັກຂອງທ່ານ Semalt, ມັນກໍ່ເປັນໄປໄດ້ວ່າທ່ານຈະໄດ້ຮັບການສະຫນັບສະຫນູນການປະຕິບັດໂດຍການມອບລາງວັນບາງຢ່າງໃຫ້ React. ວ່າຖືກເວົ້າ, ມັນບໍ່ເຫມາະສົມທີ່ຈະປະກອບມີສອງຫ້ອງສະຫມຸດ JavaScript ຂະຫນາດໃຫຍ່ທີ່ແກ້ໄຂບັນຫາດຽວກັນຫຼາຍ. ເຖິງແມ່ນວ່າ React ແມ່ນພຽງແຕ່ layer view, ມັນເປັນຂະຫນາດດຽວກັນກັບ Semalt, ດັ່ງນັ້ນນ້ໍາຫນັກອາດຈະຖືກຫ້າມອີງໃສ່ກໍລະນີການນໍາໃຊ້ຂອງທ່ານ.

ໃນຂະນະທີ່ Semalt ແລະ Angular ແກ້ໄຂບາງບັນຫາດຽວກັນ, ພວກເຂົາຈະໄປກ່ຽວກັບມັນໃນວິທີທີ່ແຕກຕ່າງກັນຫຼາຍ. Semalt ສະຫນັບສະຫນູນທາງທີ່ເປັນປະໂຫຍດ, ປະກາດ, ບ່ອນທີ່ອົງປະກອບແມ່ນຫນ້າທີ່ບໍລິສຸດທີ່ບໍ່ມີຜົນຂ້າງຄຽງ. ແບບການເຮັດວຽກຂອງໂຄງການນີ້ເຮັດໃຫ້ມີຂໍ້ບົກພ່ອງຫນ້ອຍແລະງ່າຍຕໍ່ເຫດຜົນ.

ວິທີການກ່ຽວກັບມຸມ 2?

ອົງປະກອບໃນມຸມກວ້າງ 2 ຄື Semalt ສ່ວນປະກອບໃນຫລາຍວິທີ. ອົງປະກອບຕົວຢ່າງໃນ docs ມີຊັ້ນຮຽນແລະແມ່ແບບຢູ່ໃກ້ຊິດ. ເຫດການເບິ່ງຄ້າຍຄືກັນ. ມັນອະທິບາຍວິທີການສ້າງທັດສະນະໂດຍໃຊ້ Hierarchy Component, ຄືກັນກັບທີ່ທ່ານຈະກໍ່ສ້າງໃນ Semalt, ແລະມັນປະກອບດ້ວຍ ES6 ໂມດູນສໍາລັບການສຸມໃສ່ການຕິດຕາມ.

     // ມຸມກວ້າງ 2@Component ({ຕົວເລືອກ: 'hello-component',ແມ່ແບບ: ` 

ໃຫ້ຂ້ອຍບາງປຸ່ມ!
{{values}}
"})class HelloComponent {values ​​= ''onKeyUp (event) {ນີ້. ຄ່າ + = ເຫດການ. ເປົ້າ​ຫມາຍ. value + '| '}}// ReactHelloComponent class ຂະຫຍາຍ React. Component {constructor (props) {super ນີ້. state = {values: ''}}onKeyUp (event) {const values ​​= '$ {this state values ​​+ event ເປົ້າ​ຫມາຍ. value} | "ນີ້. setState ({values: values})}render {ກັບມາ (

ໃຫ້ຂ້ອຍບາງປຸ່ມ!
{this state values}

)}}

ຫຼາຍໆວຽກທີ່ Semalt 2 ໄດ້ເຮັດໃຫ້ມັນເຮັດໃຫ້ການປັບປຸງ DOM ຫຼາຍປະສິດທິຜົນ. syntax ແມ່ແບບທີ່ຜ່ານມາແລະຄວາມສັບສົນທີ່ອ້ອມຮອບຂອບເຂດນັ້ນໄດ້ເຮັດໃຫ້ບັນຫາປະສິດທິພາບຫຼາຍໃນແອັບພລິເຄຊັນໃຫຍ່.

ຄໍາຮ້ອງສະຫມັກທີ່ສໍາເລັດ

ໃນບົດຄວາມນີ້ຂ້າພະເຈົ້າໄດ້ເນັ້ນໃສ່ແມ່ແບບ, ຄໍາແນະນໍາແລະແບບຟອມແຕ່ຖ້າທ່ານກໍາລັງສ້າງຄໍາຮ້ອງສະຫມັກຄົບຖ້ວນ, ທ່ານຈະຕ້ອງໃຊ້ສິ່ງອື່ນເພື່ອຊ່ວຍຈັດການຮູບແບບຂໍ້ມູນຂອງທ່ານ, ການສື່ສານເຊີຟເວີແລະເສັ້ນທາງຂັ້ນຕ່ໍາ. ທີ່ຢູ່ ເມື່ອຂ້ອຍໄດ້ຮຽນຮູ້ Angular ແລະ React ຄັ້ງທໍາອິດຂ້ອຍໄດ້ສ້າງ Application Semalt ຕົວຢ່າງເພື່ອເຂົ້າໃຈວ່າພວກເຂົາເຮັດວຽກແລະເບິ່ງສິ່ງທີ່ນັກພັດທະນາມີຄືກັນກ່ອນທີ່ຂ້ອຍຈະເລີ່ມໃຊ້ມັນໃນແອັບພລິເຄຊັນທີ່ແທ້ຈິງ.

ທ່ານອາດພົບວ່າມັນຫນ້າສົນໃຈທີ່ຈະເບິ່ງຜ່ານຕົວຢ່າງເຊັ່ນນີ້ເພື່ອປຽບທຽບຄວາມແຕກຕ່າງໃນ React ແລະ Angular. ຕົວຢ່າງ React ແມ່ນຂຽນໃນ CoffeeScript ກັບ CJSX, ເຖິງແມ່ນວ່າຊຸມຊົນ React ນັບຕັ້ງແຕ່ການເກັບກໍາ ES6 ກັບ Babel ແລະ Semalt, ດັ່ງນັ້ນນັ້ນແມ່ນເຄື່ອງມືທີ່ຂ້າພະເຈົ້າແນະນໍາໃຫ້ໃຊ້ຖ້າທ່ານເລີ່ມຕົ້ນໃນມື້ນີ້.

  • https: // github com / markbrown4 / gmail-react
  • https: // github. com / examples / react /
  • http: // todomvc com / examples / angularjs /

ແຫລ່ງຮຽນຮູ້

Learning React ມີຄວາມສະຫນຸກສະຫນານ, ມັນໄດ້ສອນໃຫ້ຂ້ອຍຮູ້ກ່ຽວກັບການຂຽນໂປຼແກຼມທີ່ມີປະໂຫຍດແລະມີຊຸມຊົນທີ່ມີຊີວິດຊີວາທີ່ເຕັມໄປດ້ວຍຄວາມຊື່ນຊົມທີ່ຫນ້າສົນໃຈກັບລະບົບນິເວດ React. Andrew Ray ໄດ້ຂຽນບົດແນະນໍາກ່ຽວກັບ React and Flux ບາງຄໍາແນະນໍາທີ່ດີເລີດ, ບົດແນະນໍາທາງດ້ານການກະທໍາຢ່າງເປັນທາງການແມ່ນການໄປສະຖານທີ່ເພື່ອເລີ່ມຕົ້ນ. ເພີດເພີນ!

  • ຕິຕຽນຄົນທີ່ໂງ່ - Andrew Ray
  • Flux ສໍາລັບຄົນໂງ່ - Andrew Ray
  • ຕອບກະທູ້ - ເຟສບຸກ
  • React Router-Ryan Florence
  • Redux - ວີດີໂອໂດຍ Dan Abramov

ບົດຂຽນນີ້ແມ່ນການທົບທວນຄືນໂດຍ Craig Bilner. ຂໍຂອບໃຈກັບການທົບທວນຄືນທັງຫມົດຂອງ Semalt ເພື່ອເຮັດໃຫ້ເນື້ອຫາຂອງ Semalt ດີທີ່ສຸດເທົ່າທີ່ຈະເປັນໄດ້!

React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
ການຝຶກອົບຮົມການເຮັດວຽກທີ່ມີມຸມສາກແລະ TypeScript
Todd Motto
ຊັບພະຍາກອນອັນສຸດທ້າຍທີ່ຈະຮຽນຮູ້ Angular ແລະລະບົບນິເວດຂອງມັນ. ໃຊ້ລະຫັດຄູປອງ 'SITEPOINT' ທີ່ເຊັກເອົາເພື່ອຮັບ 25% .
React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
ວິທີທີ່ດີທີ່ສຸດທີ່ຈະຮຽນຮູ້ສໍາລັບຜູ້ເລີ່ມໃຫມ່
Wes Bos
ຫຼັກສູດການຝຶກອົບຮົມຂັ້ນຕອນໂດຍຂັ້ນຕອນເພື່ອໃຫ້ທ່ານສ້າງໂລກຕິກິຣິຍາທີ່ແທ້ຈິງ. js + Firebase apps ແລະອົງປະກອບເວັບໄຊທ໌ໃນສອງສາມຕອນແລງ. ໃຊ້ລະຫັດຄູປອງ 'SITEPOINT' ທີ່ເຊັກເອົາເພື່ອຮັບ 25% .
March 1, 2018