Vue 3.0中jsx语法的使用


Posted in Javascript onNovember 13, 2020

Vue 3.0 正式发布了,喜大普奔?。新的语法又要学习一阵阵,不过需要在生产环境下大面积使用,可能需要等到它的周边工具:vuex,vue-router 等等全部升级完毕。

Vue 3.0 中尤大使用的了新的编译工具 vite,革了 webpack 的命?。尝试看了下文档,发现支持 jsx 语法,由于这段时间都是在使用 react 来开发项目,jsx 完全不同的体验,更加的纯粹与灵活。

项目创建

npm init vite-app vite-vue
cd vite-vue
npm install
npm run dev

我们发现创建的目录解构很简单

Vue 3.0中jsx语法的使用

使用 JSX

Vue 3.0 直接支持 jsx 语法,新建 demo.jsx

export default function JsxTemp() {
 return <div>
 <h3>jsx</h3>
 </div>
}

引入到 App.vue 中可以完整显示

Vue 3.0中jsx语法的使用

再尝试绑定数据

import { ref } from 'vue'

export default function JsxTemp() {
 const state = ref(0)
 const onClick = () => {
 state.value++;
 console.log(state.value)
 }
 return <div>
 <h3>state: {state.value}</h3>
 <button onClick={onClick}>点击</button>
 </div>
}

我们发现没有像我们想的那样 state 数一直自增?

Vue 3.0中jsx语法的使用

这是因为我们在 Vue 3.0 中需要使用 defineComponent 包裹来使其变成一个双向绑定数据的组件
参数 为 setup function | object

import { defineComponent, ref } from 'vue'

export default defineComponent(() => {
 const state = ref(0)
 const onClick = () => {
 state.value++;
 console.log(state.value)
 }
 return () => (
 <div>
  <h3>state: {state.value}</h3>
  <button onClick={onClick}>点击</button>
 </div>
 )
})

可以看到现在是实时点击实现自增效果

Vue 3.0中jsx语法的使用

组件通信

组件间传值通信该怎么来实现呢?

我们需要改用对象的方式来传入通信数据

App.vue
<JsxTemp site="imondo.cn" @onGet="onGet" />
export default {
 ...
 methods: {
 onGet(e) {
  console.log('emit:', e)
 }
 }
}
...
export default defineComponent({
 props: {
 site: String
 },
 setup({ site }) {
 const state = ref(0)
 const onClick = () => {
  state.value++;
  console.log(state.value)
  context.emit('onGet', 'Mondo');
 }
 return () => (
  <div>
  <h1>props: {site}</h1>
  <h3>state: {state.value}</h3>
  <button onClick={onClick}>点击</button>
  </div>
 )
 }
})

实现效果

Vue 3.0中jsx语法的使用

总结

我们尝试了在 Vue 3.0 中如何使用 jsx ,这有助于我们在项目中更灵活的公用我们组件,由此也可以区分我们在项目中使用的方式

  • 无状态组件 我们完全可以使用纯函数来展示
  • 有状态组件 存在逻辑与数据绑定的组件则需要使用 Vue 3.0 提供的一系列组件 API

以上就是Vue 3.0 中 jsx 语法使用的详细内容,更多关于Vue 3.0 jsx 语法的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JavaScript 学习笔记(九)call和apply方法
Jan 11 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
使用jquery 简单实现下拉菜单
Jan 14 Javascript
jquery中$each()方法的使用指南
Apr 30 Javascript
js给selected添加options的方法
May 06 Javascript
详细分析JavaScript变量类型
Jul 08 Javascript
推荐10 个很棒的 jQuery 特效代码
Oct 04 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
详解Vue slot插槽
Nov 20 Vue.js
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 #Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 #Javascript
PHP 502bad gateway原因及解决方案
Nov 13 #Javascript
解决iview table组件里的 固定列 表格不自适应的问题
Nov 13 #Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 #Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 #Javascript
在vue中嵌入外部网站的实现
Nov 13 #Javascript
You might like
php 常用字符串函数总结
2008/03/15 PHP
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
php二分查找二种实现示例
2014/03/12 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python的装饰器使用详解
2017/06/26 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
Python中logger日志模块详解
2020/08/04 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
中专自荐信
2013/10/13 职场文书
社团成立邀请函
2014/01/08 职场文书
合同协议书格式
2014/04/18 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014年采购员工作总结
2014/11/18 职场文书
大学生个人学年总结
2015/02/15 职场文书
国庆阅兵观后感
2015/06/15 职场文书