关于 Vue 中 h() 函数的一些东西

本文介绍了在 Vue 项目中如何使用 h() 函数结合 Element UI 的 Notification 组件来实现带有 HTML 片段的通知。h() 函数用于创建虚拟 DOM 节点 (vnodes),并讲解了它的使用方式和作用。同时,文章探讨了 VNode 在 Vue 中的角色,包括其类型和缓存机制,强调了 VNode 对比和更新在性能优化中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在项目上需要一个信息弹窗,来显示信息。一开始只让它弹出了文字,而且只有一条信息。而给我的需求是多条文字和图片,而后我使用了element ui中的 Notification 通知组件来显示。当然,基础的 Notification 还不行,所以我使用了具有 HTML 片段的 Notification ,以及搭配 Vue 中的 h() 函数一起来使用。

下面是element ui 中给出的 Notification 组件(具有 HTML 片段的 Notification )。

1 ElNotification({
2     title: 'HTML String',
3     dangerouslyUseHTMLString: true,//是否将 message 属性作为 HTML 片段处理
4     message: '<strong>This is <i>HTML</i> string</strong>',//正文内容
5   })

而要完成我的需求,只需在 Notification 的正文内容使用 h() 函数即可。

当我使用 h() 函数之后:

 1 ElNotification({
 2   title: 'HTML String',//标题
 3   type: 'warning',//类型
 4   offset: 80,//相对屏幕顶部的偏移量
 5   customClass: 'temperature',//自定义类名
 6   dangerouslyUseHTMLString: true,//是否将 message 属性作为 HTML 片段处理
 7   dur
Axios 是一个基于 Promise 的 HTTP 客户端库,用于发起网络请求。它可以在浏览器和 Node.js 环境下使用,并且广泛应用于 Vue、React 等前端框架中来进行数据交互。 ### Axios 的特点: 1. **支持Promise**:能够返回 Promise 对象,方便异步操作处理; 2. **拦截请求和响应**:可以对发出的请求以及收到的响应做预处理; 3. **转换请求/响应数据**:自动将 JSON 数据序列化成字符串或反序列化回 JavaScript 对象; 4. **取消请求**:通过特定的方式允许用户中途终止某个未完成的请求; 5. **客户端防抖(防止重复提交)** 和其他高级特性。 ### 在Vue项目里如何安装并配置axios? #### 步骤一: 安装 axios 你可以利用 npm 或 yarn 来添加这个依赖到你的 Vue 应用程序: ```bash npm install axios --save ``` 或是如果你更习惯于yarn的话, ```bash yarn add axios ``` #### 步骤二: 引入及初始化 接下来,在 `main.js` 文件里面引入 axios 并创建实例: ```javascript import Vue from 'vue'; import App from './App.vue'; // 导入 axios 模块 import axios from "axios"; // 创建 axios 实例 const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // api base_url timeout: 5000 // 请求超时时间设置 }); Vue.prototype.$axios = service; new Vue({ render: h => h(App), }).$mount('#app'); ``` 上面代码完成了全局挂载 `$axios`, 这样所有组件都可以直接访问了。 #### 步骤三: 使用方法 现在我们就可以很方便地在任意地方发送 AJAX 请求啦~ 比如在一个简单的按钮点击事件触发函数里获取远程的数据源列表信息: ```html <template> <div @click="fetchData">Click me to fetch data</div> </template> <script> export default { name: 'MyComponent', methods: { fetchData() { this.$axios.get('/api/dataList') .then(response => { console.log('Success:', response.data); }) .catch(error => { console.error('Error occurred while fetching data', error); }); } } } </script> ``` 这里展示了最基础的一种 GET 类型查询例子;实际上 POST 提交表单、PUT 更新资源等也是类似的操作流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值