vue(脚手架开发中)main.js中引入后的vant(Toast)为什么还要在使用时手动引入

差异原因

  1. Tabbar 不需额外引入
    • Tabbar 和 TabbarItem 是组件,通过 Vue.use() 全局注册后,可在任何 .vue 文件的 <template> 中直接使用(如 <van-tabbar>)。
    • 全局注册的组件会自动被模板识别,无需再次引入。
  2. Toast 需要引入或通过 this 调用
    • Toast 是一个函数式组件(插件方法),通过 Vue.use(Toast) 注册后挂载到 Vue 原型上(this.$toast),但不能作为模板标签使用。
    • 使用时需在 JS 中调用,若不依赖 this,则需显式 import { Toast } from 'vant'。

使用示例

  • Tabbar

    vue

    收起自动换行复制

    <template> <van-tabbar> <van-tabbar-item>首页</van-tabbar-item> </van-tabbar> </template>

  • Toast
    • 使用 this.$toast(全局注册后):

      <script> export default { methods: { showToast() { this.$toast('提示信息'); } } }; </script>

    • 显式引入:

      <script> import { Toast } from 'vant'; export default { methods: { showToast() { Toast('提示信息'); } } }; </script>

根本原因

  • 组件 vs 函数
    • Tabbar 是组件,适用于模板。
    • Toast 是函数式 API,适用于 JS 调用。
  • 作用域
    • 全局组件直接在模板中可用。
    • Toast 需通过 JS 上下文(this 或导入)访问。

解决方案

  1. 使用 this.$toast,无需额外引入(推荐)。
  2. 在特定场景下显式 import { Toast } from 'vant'。

结论

  • Tabbar 是全局组件,模板中直接可用。
  • Toast 是函数式方法,需在 JS 中调用,导致使用方式不同。
### 如何使用 Yarn 创建 Vue 3 项目 要使用 Yarn 创建一个基于 Vue CLI 的 Vue 3 项目,可以按照以下方法操作。Vue CLI 是一种官方推荐的脚手架工具,用于快速搭建大型单页应用程序 (SPA)[^1]。 #### 安装 Vue CLI 工具 首先需要全局安装 Vue CLI 工具。如果尚未安装 Vue CLI,则可以通过运行以下命令来完成安装: ```bash yarn global add @vue/cli ``` 此命令会通过 Yarn 将 Vue CLI 添加到系统的全局环境中。 #### 初始化一个新的 Vue 3 项目 一旦 Vue CLI 成功安装完毕,就可以初始化新的 Vue 3 项目。执行如下命令: ```bash yarn create vue-project my-vue-app ``` 上述命令将会引导用户进入交互式的设置流程,在这个过程中可以选择 Vue 版本(确保选择 Vue 3),并自定义项目的其他功能模块,比如 TypeScript 支持、路由配置、状态管理库 Vuex 或 Pinia 等[^5]。 或者也可以手动指定 Vue CLI 来创建项目: ```bash vue create my-vue-app ``` 在此期间,当被询问关于 Vue 版本的选择,请务必确认选择了 `Manually select features` 并勾选 Vue 3 相关选项。 #### 运行开发服务器 成功创建项目之后,切换至新生成的目录下,并启动本地开发环境: ```bash cd my-vue-app yarn serve ``` 这一步骤将自动开启一个热重载的 Webpack 开发服务器,默认地址为 `http://localhost:8080/`。 #### 主入口文件配置示例 对于集成第三方 UI 库或其他插件的情况,可以在主入口文件中进行统一注册和引入。例如下面展示了如何在 `main.ts` 中加载 Vant 组件库及其样式资源[^3]: ```typescript import { createApp } from 'vue'; import './style.css'; import App from './App.vue'; // 引入 Vant 组件 import { Toast, Dialog, Notify, ImagePreview } from 'vant'; import 'vant/lib/index.css'; const app = createApp(App); app.use(Toast); app.use(Dialog); app.use(Notify); app.use(ImagePreview); app.mount('#app'); ``` 以上代码片段实现了对多个 Vant 插件的一次性挂载。 --- ### 使用 `<script setup>` 和多 v-model 示例 另外值得注意的是,在现代 Vue 单文件组件(SFC)编写方式上,推荐采用 Composition API 结合 `<script setup>` 形式简化模板逻辑表达。例如实现双向绑定输入框与子组件属性传递可参考以下结构[^2]: ```html <script setup lang="ts"> import { ref } from 'vue'; let text = ref(''); </script> <template> <div> <input type="text" v-model="text"/> <ChildComponent v-model:xumeng03="text"></ChildComponent> <!-- 自定义事件修饰符 --> </div> </template> ``` 此处利用了增强版的 `v-model` 语法支持命名模型绑定特性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值