Vant项目优化,由按需引入到优CDN引入优化时出现的问题

1 文件结构

      这里用的是webpack开发和生产的entry入口是分开的,生产的入口文件为pro-main.js,开发为dev-main.js

pro-main.js的文件

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 导入vant按需引入的模块
// import './Vant/vant'

// 导入全局样式
import './assets/style/index.less'

// 动态设置rem基准值,屏幕宽度除以十
import 'amfe-flexible'
// 注册全局组件Article-cell
import articleCell from '@/components/article-cell.vue'
// 导入day.js
import '@/assets/utils/day.js'

Vue.config.productionTip = false

// 注册全局组件articleCell
Vue.component('article-cell', articleCell)

new Vue({
  router,
  store,
  render: (h) => h(App)
}).$mount('#app')

当注释掉 import './Vant/vant' 改在public文件下面以cdn模式引入vant时

 

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <meta name="referrer" content="no-referrer">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <% if(htmlWebpackPlugin.options.isProd){ %>
    <link
     rel="stylesheet"
     href="https://cdn.jsdelivr.net/npm/vant@2.12/lib/index.css"
    />

    <!-- 引入 Vue 和 Vant 的 JS 文件 -->
    <script src="https://cdn.staticfile.org/vue/2.6.9/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vant@2.12/lib/vant.min.js"></script>
    <!-- 导入vue-router -->
    <script src="https://cdn.staticfile.org/vue-router/3.2.0/vue-router.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.20/lodash.min.js"></script>
    <!-- 导入axios -->
    <script src="https://cdn.staticfile.org/axios/0.24.0/axios.min.js"></script>
    <% } %>
    <title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>头条</title>
  </head>

      样式出现了混乱,部分的样式没有显现出现了混乱,一开始我以为是有些toast这种提示消息使用错误,在组件中this.$toast()是这么使用的,以为是这种类型的组件没有注册上vue,但后面进行测试发现并非如此。

<van-cell-group>
  <van-cell title="单元格" value="内容" />
  <van-cell title="单元格" value="内容" label="描述信息" />
</van-cell-group>

        这是vant的基本单元格,但是它用了自闭合的标签,它在html渲染是就会出问题 ,在vant的issue的有关答复是:Vue不支持在HTML中使用自关闭标记,请使用Vue官方文档中描述的完整标记在网上找了一下原因:
 

 自闭合组件表示它们不仅没有内容,而且刻意没有内容。其不同之处就好像书上的一页白纸对比贴有“本页有意留白”标签的白纸。而且没有了额外的闭合标签,你的代码也更简洁。 不幸的是,HTML 并不支持自闭合的自定义元素——只有官方的“空”元素。所以上述策略仅适用于进入 DOM 之前 Vue 的模板编译器能够触达的地方,然后再产出符合 DOM 规范的 HTML。

   如果有优化vant 的需要不要用自闭合的标签为好 ,该起来太麻烦了

  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以通过以下几种方式来引入Vant组件库到Vue2中: 1. 通过在HTML中直接引入样式和脚本文件来使用Vant组件。首先,将Vant的样式文件和JS文件引入到HTML文件中: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.12/lib/index.css" /> <script src="https://cdn.jsdelivr.net/npm/vue@2.6/dist/vue.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/vant@2.12/lib/vant.min.js"></script> ``` 然后,你可以在Vue实例中使用Vant组件,比如渲染一个按钮组件: ```html <div id="app"> <van-button>按钮</van-button> </div> <script> new Vue({ el: '#app', }); </script> ``` 你也可以通过调用函数组件来使用Vant的提示功能: ```html <script> vant.Toast('提示'); </script> ``` 2. 在vue-cli中使用Vant。首先,使用npm安装Vant: ```shell npm install vant ``` 然后,在main.js文件中引入Vant组件并注册: ```javascript import Vue from 'vue'; import Vant from 'vant'; import 'vant/lib/index.css'; Vue.use(Vant); ``` 现在你就可以在Vue组件中使用Vant组件了。 3. 手动按引入组件。在进行上述配置后,你可以按引入Vant的组件。比如,如果你只想使用按钮组件,可以在使用的组件中引入按钮组件: ```javascript import { Button } from 'vant'; ``` 然后,在该组件的模板中使用Vant的按钮组件。 以上是三种常见的在Vue2中引入Vant组件的方法。请根据你的实际情况选择其中一种方法来使用Vant组件库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [详解vant组件应用于Vue2](https://blog.csdn.net/m0_52578688/article/details/124487587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Heigl swift

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值