首页 > 其他分享 >前端学习-vue视频学习016-vue3新组件

前端学习-vue视频学习016-vue3新组件

时间:2024-04-16 22:15:58浏览次数:28  
标签:vue 100px 016 vue3 import Model border 弹窗

尚硅谷视频教程

Teleport:让部分元素脱离原来的位置,到to指定的位置去

此处指定了弹窗到body标签内

<template>
    <h4>Model</h4>
    <button @click="isShow = true">打开弹窗</button>
    <Teleport to='body'>
        <div class="tanchuang" v-show="isShow">
            弹窗
            <button @click="isShow = false">关闭弹窗</button>
        </div>
    </Teleport>

 </template>
 
 <script setup name="Model" lang="ts">
 import { ref } from 'vue'
 let isShow = ref(false)
 
 </script>
 
 
 <style>
 .tanchuang {
        padding: 20px 0;
        border: 1px solid grey;
        border-radius: 5px;
        text-align: center;
        width: 200px;
        position: fixed;
        left: 50%;
        top: 100px;
        margin-left: -100px;
    }
 </style>

Suspense:当child组件有异步请求,网速较慢时显示较晚,需要有一个类似加载中的展示,使用

child

<template>
    <h4>Model</h4>
    <div class="tanchuang">
        弹窗
        <button>关闭弹窗</button>
    </div>

 </template>
 
 <script setup name="Model" lang="ts">
 import { ref } from 'vue'
 import axios from 'axios';

 let {data} = await axios.get('https://api.uomg.com/api/rand.qinghua?format=json')
 
 </script>
 
 
 <style>
 .tanchuang {
        padding: 20px 0;
        border: 1px solid grey;
        border-radius: 5px;
        text-align: center;
        width: 200px;
        position: fixed;
        left: 50%;
        top: 100px;
        margin-left: -100px;
    }
 </style>

Parent

<template>
   <div class="app">
    <h3>App</h3>
    <Suspense>
        <template v-slot:default>
            <Model/>
        </template>
        <template v-slot:fallback>
            <h3>loading</h3>
        </template>
    </Suspense>
   </div>
</template>

<script setup name="App" lang="ts">
import { Suspense } from 'vue';
import Model from './Model.vue'

</script>


<style>
    .app {
        padding: 20px 0;
        border: 1px solid grey;
        border-radius: 5px;
        text-align: center;
        background: linear-gradient(to right, skyblue, pink);
        width: 400px;
        height: 400px;
        filter: saturate(200%);
    }

</style>

全局API

vue2到vue3的非兼容性改变

标签:vue,100px,016,vue3,import,Model,border,弹窗
From: https://www.cnblogs.com/ayubene/p/18139167

相关文章

  • 05 Vue3组件间的通信
    Vue3组件通信和Vue2的区别:移出事件总线,使用mitt代替。vuex换成了pinia把.sync优化到了v-model里面了把$listeners所有的东西,合并到$attrs中了$children被砍掉了常见搭配形式props-【父传子子传父】若父传子:属性值是非函数若子传父:属性值是函数一般都......
  • 06 Vue3插槽
    6.9.【slot】1.默认插槽父组件中:<Categorytitle="今日热门游戏"><ul><liv-for="gingames":key="g.id">{{g.name}}</li></ul></Category>子组件中:......
  • 在宝塔上配置打包好的vue3项目
    配置文件如下server{listen80;server_namegongchang.365cb.cn; indexindex.htmlindex.htmdefault.phpdefault.htmdefault.html;root/www/wwwroot/dist;#SSL-STARTSSL相关配置,请勿删除或修改下一行带注释的404规则#error_page404/404.html;#SS......
  • vue3中使用scss
    安装依赖npminstallsasssass-loader--save-dev局部使用<stylescopedlang="scss">...定义样式</style> 全局共享样式变量,在assets/style文件夹中定义mixin.scss文件,并设置一些样式;在其他文件使用定义的变量前需要引入样式文件表  在vite.config.ts文件中......
  • 用Vue全家桶纯手工搓了一个开源版「抖音」
    前言2018年刚入行前端时,公司使用的还是Angular。Angular什么都好,就是写代码时的体验老糟心了,改一个地方,按下保存之后,要等好几秒刷新后才能看到效果,Webstorm无比好用的自动保存,对我来说反而像是一个负担。然而2024年了,Angular已经更新了17版本,还是没有解决这个问题,热替换依然那么......
  • vue3:如何进行组件间的信息传递
    这里以父组件——主页面|子组件1——对话框|子组件2——按钮为例父组件——主页面import{provide,ref}from"vue";#创建对象,并且其有一个value属性,现在定义为falseconstdialogVisible=ref(false);constsetdialogVisible=(value)=>{dialogVisible.value=value;......
  • 前端开发框架的选择-Vue.js
    Vue.js秉持简约哲学,通过精炼的代码实现功能——它专注于为Web应用开发提供核心工具,而非让冗余特性成为负担。这种简约设计思路使得代码更加明晰,易于阅读和维护。长远看来,Vue.js的简约特性使得项目运作更为流畅。无论是小型网站还是大型单页应用,Vue.js都能轻松应对——它并非万金......
  • vue项目中展示markdown文件(markdown-it-vue)
    //安装依赖npmimarkdown-it-vue//引入markdown-ite-vueimportMarkdownItVuefrom"markdown-it-vue";import"markdown-it-vue/dist/markdown-it-vue.css";//注册组件components:{MarkdownItVue},//使用组件<markdown-it-vueclass="......
  • VUE:vite添加环境变量(一)
    新建'.env'(和vite.config.js同一个路径下)VITE_APP_API_URL=http://localhostvite.config.jsimport{defineConfig,loadEnv}from'vite'exportdefaultdefineConfig((mode)=>{constenv_config=loadEnv(mode,process.cwd())constV......
  • 《Vue.js设计与实现》 第七章 渲染器的设计
    7.1渲染器与响应系统的结合最简单的渲染器及其使用//渲染器functionrenderer(domString,container){container.innerHTML=domString}//使用letcount=1renderer(`<h1>${count}</h1>`,document.getElementById('app'))渲染器与响应式系统结合constcount......