当前位置: 首页 > news >正文

热门手机网站英文网站标题字体

热门手机网站,英文网站标题字体,aws wordpress 站群,形象标识设计React 与 Vue 对比指南 - 上 本文将展示如何在 React 和 Vue 中实现常见功能&#xff0c;从基础渲染到高级状态管理 Hello 分别使用 react 和 vue 写一个 Hello World&#xff01; react export default () > {return <div>Hello World!</div>; }vue <…

在这里插入图片描述

React 与 Vue 对比指南 - 上

本文将展示如何在 ReactVue 中实现常见功能,从基础渲染到高级状态管理

Hello

分别使用 reactvue 写一个 Hello World!

react

export default () => {return <div>Hello World!</div>;
}

vue

<template><div>Hello World!</div>
</template>

属性绑定

react

通过 {} 绑定属性

export default () => {const url = "https://liuyuyang.net"return <a href={url}>跳转</a>;
}

vue

通过 : 绑定属性

<script setup lang="ts">
const url = "https://liuyuyang.net"
</script><template><!-- <a href="https://liuyuyang.net"></a> --><a :href="url">跳转</a>
</template>

表达式

react

react 的表达式是单括号

export default () => {const value = "Hello World!"const getValue = () => "Hello"const getImage = () => "https://liuyuyang.net"return (<><div>{value}</div><div>{true ? 'yes' : 'no'}</div><div>{getValue()}</div><img src={getImage() + '/1.jpg'} /><div style={{ background: true ? 'red' : 'blue' }}>{value}</div></>)
}

vue

vue 的表达式是双括号

<script setup lang="ts">
const value = "Hello World!"
const getValue = () => "Hello"
const getImage = () => "https://liuyuyang.net"
</script><template><div>{{ value }}</div><div>{{ true ? 'yes' : 'no' }}</div><div>{{ getValue() }}</div><img :src="getImage() + '/1.jpg'" /><div :style="{ background: true ? 'red' : 'blue' }">{{ value }}</div>
</template>

动态类名

react

react 定义类名的方式为 className

export default () => {return <div className={`${true ? 'aaa' : 'bbb'}`}>Hello World!</div>
}

vue

vue 定义类名的方式为 class

<script setup lang="ts">
</script><template><div :class="`${true ? 'aaa' : 'bbb'}`">Hello World!</div><div :class="{ aaa: true }">Hello World!</div><div :class="{ 'aaa-bbb': true }">Hello World!</div>
</template>

条件渲染

react

react 大多数语法都比较偏向原生

export default () => {const active = 1return (<>{active === 1? <div>aaa</div>: active === 2? <div>bbb</div>: <div>ccc</div>}</>)
}

vue

vue 可以使用 v-ifv-show 进行条件渲染

<script setup lang="ts">
const active = 1
</script><template><div v-if="active === 1">aaa</div><div v-else-if="active === 2">bbb</div><div v-else="true">ccc</div>
</template>

渲染数据

react

react 虽然有点语法写起来没有 vue 简单,但他的有点在于更加灵活、自由,非常受益于大型复杂的项目

export default () => {const list = ['aaa', 'bbb', 'bbb']return (<ul>{list.map((item, index) => {return <li key={index}>{item}</li>})}</ul>)
}

vue

vue 使用 v-for 进行数据渲染

<script setup lang="ts">
const list = ['aaa', 'bbb', 'bbb']
</script><template><ul><li v-for="(item, index) in list" :key="index">{{ item }}</li></ul>
</template>

事件处理

react

reactonClick 需要的是一个函数

export default () => {const func = () => alert("Hello World!")// return <button onClick={() => alert("Hello World!")}>点击弹框</button>;return <button onClick={func}>点击弹框</button>;
}

react 事件传参方式

export default () => {const func = (msg: string) => {alert(msg)}return <button onClick={() => func('Hello World!')}>点击弹框</button>;
}

vue

vue@click 需要的是实例上已有的函数,比如在当前文件以及全局定义或内置的函数。因为 alert 不在实例上,因此不能直接 @click="alert('Hello World!')",但我们可以在当前文件定义一个函数,在函数里面使用 alert,然后调用这个函数

<script setup lang="ts">
const func = () => {alert('Hello World!')
}
</script><template><!-- <button v-on:click="func">点击弹框</button> --><button @click="func">点击弹框</button>
</template>

vue 事件传参方式

<script setup lang="ts">
const func = (msg: string) => {alert(msg)
}
</script><template><button @click="func('Hello World!')">点击弹框</button>
</template>

状态处理

react

react 通过 useState 进行状态管理

import { useState } from "react";export default () => {const [count, setCount] = useState(0)return (<><button onClick={() => setCount(count + 1)}>+1</button><div>{count}</div></>);
}

vue

vue 通过 refreactive 进行状态管理

<script setup lang="ts">
import { ref } from 'vue';
const count = ref(0)// count.value = 100 在脚本中需要加.value,在模板中则不需要
</script><template><button @click="count++">+1</button><button @click="() => count++">+1</button><div>{{ count }}</div>
</template>

表单处理

react

表单处理这一点个人感觉 react 要比 vue 麻烦些

import { useState } from "react";export default () => {const [value, setValue] = useState("")return (<><input type="text" value={value} onChange={e => setValue(e.target.value)} /><div>{value}</div></>);
}

vue

双向数据绑定,vue 的一大特性,这个语法糖非常好用

<script setup lang="ts">
import { ref } from 'vue'
const value = ref("")
</script><template><input type="text" v-model="value"><div>{{ value }}</div>
</template>

数据侦听

react

react 通过 useEffect 监听数据的变化

import { useEffect, useState } from "react"export default () => {const [count, setCount] = useState(0)useEffect(() => {console.log(count)}, [count])return <button onClick={() => setCount(count + 1)}>+1</button>
}

vue

vue 通过 watch 监听数据的变化

<script setup lang="ts">
import { ref, watch } from 'vue';
const count = ref(0)// watch(() => count.value, (newValue, oldValue) => { 
watch(count, (value) => { console.log(value);
})
</script><template><button @click="count++">+1</button>
</template>

计算属性

react

react 通过 useMemo 实现计算属性

import { useMemo, useState } from "react"export default () => {const [count, setCount] = useState(0)const newCount = useMemo(() => count * 2, [count])return (<><h1>{count} {newCount}</h1><button onClick={() => setCount(count + 1)}>+1</button></>)
}

vue

vue 通过 computed 实现计算属性

<script setup lang="ts">
import { ref, computed } from 'vue';
const count = ref(0)
const newCount = computed(() => count.value * 2)
</script><template><h1>{{ count }} {{ newCount }}</h1><button @click="count++">+1</button>
</template>

下期内容

下一期内容为:组件、路由、全局状态管理、以及两种框架完成相同的 Demo

http://www.yayakq.cn/news/169971/

相关文章:

  • wordpress4.8主题下载搜索引擎优化seo培训
  • 扬州做公司网站站酷的网址
  • 旅游网站开发项目介绍安卓系统开发培训
  • 合肥 做网站的公司沧州科盛网络技术有限公司
  • 做网站需要的东西个人网站怎么申请
  • 重庆皇华建设集团有限公司网站国际域名注册商
  • 自己接私单网站开发网站一般用什么做的
  • 枣庄建设工程管理局网站营销推广工作内容
  • 流媒体网站建设规划重庆在线app
  • 三亚网站推广团队天天网站
  • 浙江创业建设公司网站页游代理
  • 外贸做网站推广建行官网的网址是多少
  • 服装企业网站模板装饰工程施工流程步骤
  • 软文写作经验关键词排名优化流程
  • 国内阿里网站建设自己怎么做网站首页
  • 开发专业网站阿里巴巴如何做网站
  • 做二手交易网站如何盈利江西九江刚刚发生的新闻
  • 交互式网站建设上海公司买新能源车
  • 石家庄网站设计公司的别名是建工教育培训机构
  • 用ps怎么做网站效果图大专计算机网络技术就业方向
  • 南宁网站优化排名推广网站换空间wordpress
  • 网站对应的ip地址吗广州易网网站建设
  • 昆山规模的网站建设公司有哪些新开传奇网站站
  • 做暧暧国外网站世界工厂网网页版
  • 创欧科技 网站建设淘客网站推广怎么做
  • 品牌网站建设磐石网络优等三水网站建设哪家好
  • 市场调研数据网站百度快照怎么看
  • 私人网站建设成本品牌型网站制作有哪些公司
  • seo网站地图2022世界500强企业排名
  • 外贸企业网站制作公司多个微信管理系统