国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 镇安县| 丘北县| 巴彦淖尔市| 盐津县| 蒙城县| 河南省| 射阳县| 科技| 京山县| 武义县| 南部县| 金平| 恩平市| 勃利县| 休宁县| 龙游县| 额济纳旗| 汝阳县| 南木林县| 资中县| 开原市| 漳州市| 辽中县| 棋牌| 额济纳旗| 湖南省| 诸暨市| 通城县| 桦甸市| 邛崃市| 延吉市| 鸡泽县| 会昌县| 涪陵区| 会泽县| 大埔县| 白城市| 丹凤县| 航空| 巴林右旗| 辽阳市|