国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語言 > JavaScript > 正文

詳解從react轉(zhuǎn)職到vue開發(fā)的項(xiàng)目準(zhǔn)備

2024-05-06 15:43:18
字體:
供稿:網(wǎng)友

前言

首先,為什么我需要做這個(gè)項(xiàng)目準(zhǔn)備工作呢?因?yàn)槌D炅?xí)慣React開發(fā)的我,最近突然接手了一個(gè)Vue項(xiàng)目,而之前基本沒有過Vue的實(shí)踐,這么突兀讓還在沉溺于React開發(fā)的我進(jìn)行Vue開發(fā),甚是不習(xí)慣,那自然我需要想辦法讓Vue開發(fā)盡量與React相似,這樣大概讓自己在開發(fā)過程中更得心應(yīng)手吧。

組件開發(fā)

特性對(duì)比

眾所周知,Vue和React都有那么一個(gè)特性,那就是可以讓我們進(jìn)行組件化開發(fā),這樣可以讓代碼得到更好的重用以及解耦,在架構(gòu)定位中這個(gè)應(yīng)該叫縱向分層吧。但是,兩個(gè)框架開發(fā)組件的寫法都有所不同(這個(gè)不同是基于我的開發(fā)習(xí)慣),下面先看一下不同的地方。

首先是React,個(gè)人習(xí)慣于es6的寫法(從來沒用過es5的createClass的寫法):

import React, { Component } from 'react';import propTypes from 'prop-types';export default class Demo extends Component { state = {  text: 'hello world' }; static propTypes = {  title: PropTypes.String } static defaultProps = {  title: 'React Demo' } setText = e => {  this.setState({   text: '點(diǎn)擊了按鈕'  }) } componentWillReveiveProps(nextProps) {  console.log(`標(biāo)題從 ${this.props.title} 變?yōu)榱?${nextProps.title}`) } render() {  const { title } = this.props;  const { text } = this.state;  return <div>   <h1>{title}</h1>   <span>{text}<span>   <button onClick={this.setText}>按鈕<button>  </div> }}

下面是常見vue的寫法:

<template> <div>  <h1>{{title}}</h1>  <span>{{text}}<span>  <button @click="setText">按鈕</button> </div></template><script>export default { props: {  title: {   type: String,   default: 'Vue Demo'  } }, watch: {  title(newTitle, oldTitle) {   console.log(`標(biāo)題從 ${oldTile} 變?yōu)榱?${newTitle}`)  } }, data() {  return {   text: 'hello world'  } }, methods: {  setText(e) {   this.text = '點(diǎn)擊了按鈕';  } }}</script>

這里的視圖渲染我們先忽略,下一節(jié)在詳細(xì)對(duì)比。

prop對(duì)比:

Vue的prop必須在props字段里聲明。React的prop不強(qiáng)制聲明,聲明時(shí)也可以使用prop-types對(duì)其聲明約束。 Vue的prop聲明過后掛在在組件的this下,需要的時(shí)候在this中獲取。React的prop存在組件的props字段中,使用的時(shí)候直接在this.props中獲取。

組件狀態(tài)對(duì)比,Vue為data,React為state:

Vue的狀態(tài)data需要在組件的data字段中以函數(shù)的方式聲明并返回一個(gè)對(duì)象。React的狀態(tài)state可以直接掛載在組件的state字段下,在使用之前初始化即可。 Vue的狀態(tài)data聲明后掛在在this下面,需要的是時(shí)候在this中獲取。React的狀態(tài)state存在組件的state字段中,使用的時(shí)候直接在this.state中獲取。 Vue的狀態(tài)更新可以直接對(duì)其進(jìn)行賦值,視圖可以直接得到同步。React的狀態(tài)更新必須使用setState,否則視圖不會(huì)更新。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 靖宇县| 宜都市| 若羌县| 蓬溪县| 乌鲁木齐市| 南川市| 晋江市| 阿图什市| 襄城县| 墨竹工卡县| 吉林市| 宜章县| 丹凤县| 鄯善县| 富蕴县| 桐庐县| 塔河县| 大化| 辉县市| 扎兰屯市| 连江县| 调兵山市| 乌兰县| 罗山县| 阳原县| 邓州市| 隆安县| 延川县| 互助| 宁陕县| 柞水县| 武功县| 临夏市| 靖远县| 高碑店市| 瑞金市| 新和县| 巴彦淖尔市| 抚宁县| 大石桥市| 额尔古纳市|