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

社区网站开发进度表友情链接交换形式

社区网站开发进度表,友情链接交换形式,qq小程序在哪里打开,唐山网站建设方案策划vue3的生命周期 vue2生命周期 分为四个阶段,分别是创建,挂载,更新,销毁。包含八个钩子 vue3生命周期 分为四个阶段,分别是创建,挂载,更新,卸载。包含八个钩子 vue2和vue3钩子的名字…

vue3的生命周期

vue2生命周期 分为四个阶段,分别是创建,挂载,更新,销毁。包含八个钩子
vue3生命周期 分为四个阶段,分别是创建,挂载,更新,卸载。包含八个钩子
vue2和vue3钩子的名字有区别,且写法也有区别。

<template><div class="app"><h2>和为:{{sum}}</h2><button @click="add">点我sum+1</button></div>
</template><script lang="ts" setup name="Person">import {onBeforeMount, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, onUpdated, ref} from "vue"let sum=ref(0)function add(){sum.value++}
// ==========================================================================// 第一阶段:创建 setup  (脚本中就是setup函数,所以在vue3中创建阶段直接输出)console.log("创建了")
// 当打开页面控制台就输出“创建了”// ==========================================================================// 第二阶段:挂载 (挂载前:onBeforeMount; 挂载后:onMounted)onBeforeMount(()=>{console.log("挂载前")})onMounted(()=>{console.log("挂载完成")})
// 当打开页面控制台就输出“挂载前”和“挂载完成”// ==========================================================================// 第三阶段:更新 (更新前:onBeforeUpdate; 更新后:onUpdated)onBeforeUpdate(()=>{console.log("更新前")})onUpdated(()=>{console.log("更新完成")})
// 当点击按钮,sum值发生改变控制台就输出“更新前”和“更新完成”// ==========================================================================// 第四阶段:卸载 (卸载前:onBeforeUnmount; 卸载后:onUnmounted)onBeforeUnmount(()=>{console.log("卸载前")})onUnmounted(()=>{console.log("卸载完成")})
// 看App组件的条件渲染,当布尔值为false控制台就输出“卸载前”和“卸载完成”,此时组件被卸载
</script>

App.vue:

<template><!-- 这里使用 v-if而不使用v-show,是因为v-if会将不展示的组件销毁,便于演示;但v-show将不展示的组件用display:none进行隐藏--><Person v-if="isShow"/>
</template><script lang="ts" setup name="App">import Person from "./components/Person.vue"// 只需引入,不用注册组件,vue3引入之后会自动注册import {ref} from "vue"let isShow=ref(false)</script>

tips:
对子组件和父组件都进行挂载,则子组件先呈现,父组件再呈现,这和vue的解析流程有关

Hooks

先按照以前的方法写:

<template><div class="app"><h2>和为:{{sum}}</h2><button @click="add">点我sum+1</button><hr><img v-for="(image,index) in images" :key="index" :src="image" alt="小狗图片"><br><button @click="addImage">点击按钮获取一张图片</button></div>
</template><script lang="ts" setup name="Person">
// 要求:从提供的接口获取图片,点击按钮增加一个图片,并使其排成一行
import { ref,reactive } from 'vue';
import axios from "axios"let sum=ref(0)let images=reactive([])// 求和function add(){sum.value++}// 获取图片async function addImage(){try{   //使用try...catch捕获错误信息let result=await axios.get("https://dog.ceo/api/breed/pembroke/images/random")// console.log(result.data.message)images.push(result.data.message)} catch (error){alert(error)}}
</script><style>.app {background-color: #ddd;box-shadow: 0 0 10px;border-radius:10px;padding: 20px;}img {height: 150px;padding-left: 10px;}</style>

这样写并没有显现出vue3组合式开发的好处,一个组件处理的求和事件和获取图片的事件都写在一起,比较混乱
所以可以使用hooks,将所要处理的事件分开写就会很清晰,真正实现vue3组合式开发
使用hooks:
针对上述案例,在src下创建Hooks文件夹,文件夹下创建sumInfo.ts和dogInfo.ts
sumInfo.ts:

import { ref,reactive } from 'vue';
// 用函数包起来并暴露
export default function () {let sum=ref(0)// 求和function add(){sum.value++}// 把数据和方法等进行的操作交出去return {sum,add}
}

dogInfo.ts:

import { ref,reactive } from 'vue';
import axios from "axios"
// 用函数包起来并暴露
export default function () {let images=reactive([])// 获取图片async function addImage(){try{   //使用try...catch捕获错误信息let result=await axios.get("https://dog.ceo/api/breed/pembroke/images/random")// console.log(result.data.message)images.push(result.data.message)} catch (error){alert(error)}}// 把数据和方法等进行的操作交出去return {images,addImage}
}

person.vue:

<template><div class="app"><h2>和为:{{sum}}</h2><button @click="add">点我sum+1</button><hr><img v-for="(image,index) in images" :key="index" :src="image" alt="小狗图片"><br><button @click="addImage">点击按钮获取一张图片</button></div>
</template><script lang="ts" setup name="Person">
import sumInfo from "@/hooks/sumInfo"
import dogInfo from "@/hooks/dogInfo";
// 解构
const {sum,add}=sumInfo()
const {images,addImage}=dogInfo()
</script><style>.app {background-color: #ddd;box-shadow: 0 0 10px;border-radius:10px;padding: 20px;}img {height: 150px;padding-left: 10px;}</style>

效果图:
在这里插入图片描述

路由的基本切换

路由的基本切换

1.和vue2基本相同
但vue3中需要进行引入
import {RouterView} from "vue-router"
import {RouterLink} from "vue-router"
2.路由组件一般放在pages或views文件夹下,一般组件放在components文件夹下。
3.切换掉的路由组件默认被卸载,再次切换回来时,再进行挂载。

路由的工作模式

vue2:mode:"history" /mode:"hash"
vue3:
HTML5模式:history:createWebHistory 相当于vue2中的history模式
hash模式:history: createWebHashHistory(), 相当于vue2中的hash模式
Memory模式: history: createMemoryHistory(),
hash模式带#号,兼容性更强,担当分享链接时,#可能会被标记为不合法。
history模式不带#号,页面美观,但可能刷新页面会出现404的问题。

http://www.dtcms.com/wzjs/28470.html

相关文章:

  • 网站为什么要续费seo外包公司多吗
  • wordpress做社区网站站长工具seo综合查询下载
  • 创建网站购买域名要注意什么360搜索推广官网
  • 沈阳成创网站建设公司热点营销案例
  • 旅游网站建设策划方案爱站网
  • 旅游景点网站模板自媒体运营主要做什么
  • 营口做网站价格我想接app纯注册推广单
  • 做营销网站策划有什么前景杭州网站seo外包
  • 如何做好一个购物网站石家庄seo培训
  • 通州微网站优化沧州网站建设公司
  • 内网建站工具渠道策略的四种方式
  • 河南做网站 河南网站建设营销软文范文
  • 上海建设行政主管部门网站2024北京又开始核酸了吗今天
  • 福州高端网站制作卫星电视安装视频
  • 新农村建设管理网站百度统计
  • 各种大型网站产品推广运营的公司
  • 怎样做家普网站域名查询站长之家
  • 织梦可以做微网站吗百度一下浏览器下载安装
  • wordpress后台怎么进的广州网络seo公司
  • 旅游网站开发与设计论文seozou是什么意思
  • 旅游网站建设的利益凡科建站的免费使用
  • 同城做推广哪个网站好推销一个产品的方案
  • 网站如何验证登陆状态网站开发的一般流程
  • 站长工具 怎么做网站地图seo站长工具 论坛
  • 阿里巴巴国际站入驻费用及条件我想做电商怎么加入
  • wordpress google api株洲seo推广
  • 课程中心网站建设内容国内建站平台
  • 湖南做网站价格网络销售是什么
  • 做网站目的aso搜索排名优化
  • 浏览器如何做购物网站汉中网站seo