前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初探 vite2 + vue3 vite2 构建项目:安装第三方控件script setup

初探 vite2 + vue3 vite2 构建项目:安装第三方控件script setup

作者头像
用户1174620
发布2021-04-13 16:30:13
1.7K0
发布2021-04-13 16:30:13
举报
文章被收录于专栏:更流畅、简洁的软件开发方式

vite2已经出来一段时间了,这几天没忍住尝试了一下,首先体验到的就是 —— 快,真的很快,再也不用痛苦的等待了。

然后就是踩坑,因为vite2还算是比较新,所以介绍文章不多,虽然已经出来官网文档了,但是现在的官网似乎侧重原理介绍,对于最初级的使用方式,似乎没有,或者是我还没有找到。

这里汇总一些基础用法。

创建项目

vite2 构建项目:

建议使用yarn,可以更快一些。

代码语言:javascript
复制
yarn create @vitejs/app

然后按照提示操作即可!

选择需要的模板:

  • vanilla
  • vue
  • vue-ts
  • react
  • react-ts
  • preact
  • preact-ts
  • lit-element
  • lit-element-ts
  • svelte
  • svelte-ts

速度会非常快,只是之后需要进入文件夹,执行npm install安装需要的包,然后是npm run dev启动项目。

然后可以看到一个默认的项目,提供一些最基本的功能。

安装第三方控件

路由、状态管理和UI库,基本没啥变化,还是以前的安装方式,也是在main.js里面注册。

新变化

script setup

直接开写代码就可以了,更简单。

  • props 属性
代码语言:javascript
复制
import { defineProps } from 'vue'
const props = defineProps({
  msg: String
})
console.log(props)

模板里面的使用方式不变,代码里面要这么写,定义调用一气呵成。

  • emit
代码语言:javascript
复制
import {  defineEmit } from 'vue'
const emit = defineEmit(['myclick'])
const toParent = ()=> {
  emit('myclick','hello parent')
}

这次emit也有了自己的方式,可以不用和上下文混在一起了。

  • 上下文
代码语言:javascript
复制
import { useContext } from 'vue'
const ctx = useContext()
console.log('home:', ctx)
//导出
ctx.expose({
  someMethod(){
    console.log("将方法导出外部,供外部使用")
  }
})
  • ctx

attrs、emit、slots还是在这里,用法应该没啥变化。

  • expose 在子组件里面写一个方法,然后在父组件里面可以调用,这个算是弥补了一个不足吧,当然以前也是有这种方式的。
  • 导出的方法,父组件的调用方式
代码语言:javascript
复制
<HelloWorld ref="hw"/>

import { ref, onMounted } from 'vue'

const hw = ref(null)

onMounted(() => {
  hw.value.someMethod()
})

// 或者写在事件里面。

这个调用方式还是有点麻烦,找了半天。

便捷性

如果你觉得在 setup 里面return 对象很烦,那么恭喜你,现在不需要return了。

如果你觉得 引入一个组件之后,还需要在 components 中声明,那么恭喜你,现在也不需要了,import 引入进来之后,模板里面就可以用了。

vite.config.js 内基础配置

增加了一个配置文件,这里面可以进行各种配置,看着有点晕。

代码语言:javascript
复制
export default {
  alias: {
    "@": resolve("src"),
    "comps": resolve("src/components"),
    "apis": resolve("src/apis"),
    "views": resolve("src/views"),
    "utils": resolve("src/utils"),
    "routes": resolve("src/routes"),
    "styles": resolve("src/styles"),
  },
  plugins: [vue()]
}

plugins: [vue()] 这个是默认的,上面的别名可以自己设置,还可以有其他设置,总之很多的样子。

适应。。。

变化还是有点大,需要习惯一下,尤其是传说中的“心智问题”。如果说 vue3 的composition API 带来的心智难度是1 (约束性变小) 的话,那么这个vite2带来的难度大概是 2 (约束性几乎没了),想要驾驭好更难了一些。

vue3 还可以不太在意分出来js文件,但是现在是必须分出来单独的js文件了,否则那代码真的是不敢看。

正在尝试写个博客具体体验一下。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建项目
    • vite2 构建项目:
      • 安装第三方控件
      • 新变化
        • script setup
        • 便捷性
        • vite.config.js 内基础配置
        • 适应。。。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档