当前位置: 首页 > news >正文

站长之家seo整合营销包括哪些内容

站长之家seo,整合营销包括哪些内容,建筑课程网站,网站html代码运行环境 vue3vitetselement-plus 开发与测试 1. 使用h、render函数创建Dialog 建议可在plugins目录下创建dialog文件夹,创建index.ts文件,代码如下 import { h, render } from "vue";/*** 函数式弹窗* param component 组件* param opti…

运行环境

  • vue3
  • vite
  • ts
  • element-plus

开发与测试

1. 使用h、render函数创建Dialog

  • 建议可在plugins目录下创建dialog文件夹,创建index.ts文件,代码如下
import { h, render } from "vue";/*** 函数式弹窗* @param component 组件* @param options 组件参数* @returns*/
function createDialog(component: any, options: any) {return new Promise((resolve, reject) => {// 创建一个div节点const mountNode = document.createElement("div");// 将div节点拼接到Dom的body节点下document.body.appendChild(mountNode);// 使用h函数创建节点const vNode = h(component, {...options,// 注意: vue子组件emit回调事件名称必须以on开头onSubmit: data => {resolve(data);// 移除节点document.body.removeChild(mountNode);},onCancel: data => {reject(data);// 移除节点document.body.removeChild(mountNode);}});// 渲染Dialogrender(vNode, mountNode);});
}export default createDialog;

2. 全局挂载函数式弹窗

  • 在main.ts中引入弹窗,并挂载在app上
// 引入函数式弹窗
import Dialog from "@/plugins/dialog";const app = createApp(App);// 挂载到app
app.config.globalProperties.$dialog = Dialog;

3. 测试

3.1 创建一个弹窗组件 testDialog.vue
<template><el-dialog v-model="dialogVisible" title="测试函数式弹窗" width="50%"><span>{{ props.content }}</span><template #footer><span class="dialog-footer"><el-button @click="handleCancel">Cancel</el-button><el-button type="primary" @click="handleSubmit"> Submit </el-button></span></template></el-dialog>
</template><script lang="ts" setup>
import { reactive, toRefs } from "vue";
// 注意: 需要按需引入使用到的第三方UI组件
import { ElDialog, ElButton } from "element-plus";
const props = withDefaults(defineProps<{show?: boolean; // moadl开关content?: string; // 内容}>(),{}
);
const emits = defineEmits(["submit", "cancel"]);
const state = reactive({dialogVisible: props.show
});
const { dialogVisible } = toRefs(state);/** submit */
const handleSubmit = () => {// 回调emits("submit", { action: "submit", msg: "submit back" });// 关闭弹窗dialogVisible.value = false;
};/** cancel */
const handleCancel = () => {// 回调emits("cancel", { action: "cancel", msg: "cancel back" });// 关闭弹窗dialogVisible.value = false;
};
</script>
3.2 函数式调用弹窗
<template><!-- 动态函数式弹窗 --><div class="test_dialog"><el-button @click="openModal">调用函数式弹窗</el-button></div>
</template><script lang="ts" setup>
import { getCurrentInstance } from "vue";
import TestDialog from "./testDialog.vue";// 通过全局的上下文拿到 proxy 属性
const { proxy } = getCurrentInstance();// 调用函数式弹窗
const openModal = () => {// 调用弹窗proxy.$dialog(TestDialog, {show: true,content: "调用弹窗成功了!"}).then(res => {// submitconsole.log(res);}).catch(error => {// cancel 回调console.log(error);});
};
</script><style lang="scss" scoped>
.test_dialog {padding: 50px;
}
</style>
3.3 测试效果

在这里插入图片描述

问题

  1. 非原生的html元素无法渲染,如elements-plus组件无法在弹窗渲染
    因为使用h函数无法渲染第三方UI,需要在弹窗中单独引入,如上面测试代码使用的element-plus的modal和button都需要按需引入一次。如果没有引入弹窗都不会show出来,控制台会给于警告如下截图,通过这个截图也可以看到,h函数是帮我们将弹窗组件拼接到了DOM中,组件的参数一并拼接了进去,与传统的调用方式近似。
    在这里插入图片描述

  2. 在调用dialog的代码中,ts会有代码警告
    可以全局申明下挂载的dialog,可直接在main.ts添加下面的申明

	// 全局申明下$dialog,可以去除调用时ts的警告declare module "vue" {export interface ComponentCustomProperties {$dialog: any;}}
http://www.dinnco.com/news/81518.html

相关文章:

  • wordpress字体替换百度seo插件
  • 中山好的做网站的公司电商运营主要负责什么
  • pyton怎么做网站的代码搜索引擎优化是做什么
  • 丹江口做网站武汉大学人民医院怎么样
  • 那里有专门做印刷品的网站西安seo外包行者seo
  • 十堰做网站的有哪些网络引流怎么做啊?
  • 聊城手机站网站公司搜索率最高的关键词
  • 策划 网站外贸营销型网站建设公司
  • mil后缀网站深圳网站建设公司官网
  • 政府门户网站建设经验总结品牌营销战略
  • dw网页制作模板教程上海网站seo排名优化
  • 政府网站制作方案营销网页
  • 江阴做网站的公司百度竞价客服电话
  • 中文个人网站模板下载最稳定的灰色词排名
  • 自己做开奖网站长春seo顾问
  • 网站针对爬虫爬取做的优化网站宣传费用
  • 绵阳专门做网站的公司有哪些指数基金定投怎么买
  • 网页开发公司网站抖音seo招商
  • 中企动力网站好么手机百度账号登录入口
  • 不想花钱做网站推广郑州网络seo公司
  • 网站的维护百度推广代理怎么加盟
  • apache 配置wordpressseo页面优化技术
  • 动漫设计工作室网站建设公司站长统计在线观看
  • 做网站顺序it培训四个月骗局
  • 宝鸡精品网站开发正规seo排名多少钱
  • 外贸网站建设流程图在线网页制作网站
  • 传奇私服网站搭建教程百度站长工具怎么用
  • 沈阳有名的设计公司有哪些济宁seo公司
  • 南皮做网站网站关键词优化软件效果
  • 邢台装修网站建设seo顾问咨询