做外贸生意最好的网站使用html制作个人主页

news/2025/9/28 6:18:11/文章来源:
做外贸生意最好的网站,使用html制作个人主页,seo优化工具推荐,南通网站建设有限公司一 Vue3的变化 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-Shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 Composition API#…一 Vue3的变化 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% 2.源码的升级 使用Proxy代替defineProperty实现响应式 重写虚拟DOM的实现和Tree-Shaking 3.拥抱TypeScript Vue3可以更好的支持TypeScript 4.新的特性 Composition API组合API setup配置ref与reactivewatch与watchEffectprovide与inject 新的内置组件 FragmentTeleportSuspense 其他改变 新的生命周期钩子data 选项应始终被声明为一个函数移除keyCode支持作为 v-on 的修饰符 5 组合式API和配置项API 5.1 Options API 存在的问题 使用传统OptionsAPI中新增或者修改一个需求就需要分别在datamethodscomputed里修改 。 5.2 Composition API 的优势 我们可以更加优雅的组织我们的代码函数。让相关功能的代码更加有序的组织在一起。 6 项目分析 分析文件目录 main.js Vue2项目的main.js import Vue from vue import App from ./App.vueVue.config.productionTip falsenew Vue({render: h h(App), }).$mount(#app)看看vm是什么 const vm new Vue({render: h h(App), })console.log(vm)vm.$mount(#app)我们再来看看Vue3项目中的main.js import { createApp } from vue import App from ./App.vuecreateApp(App).mount(#app)我们来分析一下吧 // 引入的不再是Vue构造函数了引入的是一个名为createApp的工厂函数 import { createApp } from vue import App from ./App.vue// 创建应用实例对象——app(类似于之前Vue2中的vm但app比vm更“轻”) const app createApp(App) console.log(app) // 挂载 app.mount(#app)这里的app到底是啥我们输出到控制台看看 App.vue 我们再来看看组件 在template标签里可以没有根标签了 template!-- Vue3组件中的模板结构可以没有根标签 --img altVue logo src./assets/logo.pngHelloWorld msgWelcome to Your Vue.js App/ /template二 创建Vue3.0工程 1.使用 vue-cli 创建 官方文档创建一个项目 | Vue CLI ## 查看vue/cli版本确保vue/cli版本在4.5.0以上 vue --version ## 安装或者升级你的vue/cli npm install -g vue/cli ## 创建 vue create vue_test ## 启动 cd vue_test npm run serve2.使用 vite 创建 官方文档快速上手 | Vue.js vite官网https://vitejs.cn 介绍为什么选 Vite | Vite 官方中文文档 什么是vite—— 新一代前端构建工具。优势如下 开发环境中无需打包操作可快速的冷启动。轻量快速的热重载HMR。真正的按需编译不再等待整个应用编译完成。传统构建 与 vite构建对比图 ## 创建工程 npm init vite-app project-name ## 进入工程目录 cd project-name ## 安装依赖 npm install ## 运行 npm run dev# 确保你安装了最新版本的 Node.js然后在命令行中运行以下命令 (不要带上 符号)npm init vuelatest # 这一指令将会安装并执行 create-vue它是 Vue 官方的项目脚手架工具。你将会看到一些诸如 TypeScript 和测试支持之类的可选功能提示✔ Project name: … your-project-name ✔ Add TypeScript? … No / Yes ✔ Add JSX Support? … No / Yes ✔ Add Vue Router for Single Page Application development? … No / Yes ✔ Add Pinia for state management? … No / Yes ✔ Add Vitest for Unit testing? … No / Yes ✔ Add Cypress for both Unit and End-to-End testing? … No / Yes ✔ Add ESLint for code quality? … No / Yes ✔ Add Prettier for code formatting? … No / YesScaffolding project in ./your-project-name... Done. # 如果不确定是否要开启某个功能你可以直接按下回车键选择 No。在项目被创建后通过以下步骤安装依赖并启动开发服务器 cd your-project-namenpm installnpm run dev三 三、常用API 3.1 setup setup为Vue3.0中一个新的配置项值为一个函数 setup是所有Composition API组合API编写的位置 组件中所用到的数据、方法等等均要配置在setup中 setup函数的返回值返回一个对象对象中的属性、方法, 在模板中均可以直接使用 注意 尽量不要与Vue2.x配置混用 Vue2.x配置data、methos、computed...中可以访问到setup中的属性、方法。但在setup中不能访问到Vue2.x配置data、methos、computed...。如果有重名, setup优先。 template{{name}}--{{age}}--{{xx}} /templatescriptexport default {name: App,data(){return {xx:this.name}},setup(){let namelqzlet age 19return {name,age}}, } /script3.2 ref函数 作用: 定义一个响应式的数据语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象reference对象简称ref对象。JS中操作数据 xxx.value模板中读取数据: 不需要.value直接div{{xxx}}/div备注 接收的数据可以是基本类型、也可以是对象类型。基本类型的数据响应式依然是靠Object.defineProperty()的get与set完成的对象类型的数据内部 求助 了Vue3.0中的一个新函数—— reactive函数 3.3 reactive函数 作用: 定义一个对象类型的响应式数据基本类型不要用它要用ref函数语法const 代理对象 reactive(源对象)接收一个对象或数组返回一个代理对象Proxy的实例对象简称proxy对象reactive定义的响应式数据是“深层次的”内部基于 ES6 的 Proxy 实现通过代理对象操作源对象内部数据进行操作 template{{ name }}--{{ age }}--{{ xx }}br{{person}}button clickhandleClick点我/buttonbr/templatescriptimport {ref, reactive} from vueexport default {name: App,data() {return {xx: this.name}},setup() {let name lqzlet age ref(19)// const person ref({ // 内部包装成reactiveconst person reactive({name: 彭于晏,age: 88})function handleClick() {// console.log(age)// age.valueconsole.log(person)person.age}return {name, age, handleClick,person}}, } /script3.4 reactive对比ref 从定义数据角度对比 ref用来定义基本类型数据reactive用来定义对象或数组类型数据备注ref也可以用来定义对象或数组类型数据, 它内部会自动通过reactive转为代理对象从原理角度对比 ref通过Object.defineProperty()的get与set来实现响应式数据劫持。reactive通过使用Proxy来实现响应式数据劫持, 并通过Reflect操作源对象内部的数据。从使用角度对比 ref定义的数据操作数据需要.value读取数据时模板中直接读取不需要.value。reactive定义的数据操作数据与读取数据均不需要.value。 3.5 setup的两个注意点 setup执行的时机 在beforeCreate之前执行一次this是undefined。 setup的参数 props值为对象包含组件外部传递过来且组件内部声明接收了的属性。context上下文对象 attrs: 值为对象包含组件外部传递过来但没有在props配置中声明的属性, 相当于 this.$attrs。slots: 收到的插槽内容, 相当于 this.$slots。emit: 分发自定义事件的函数, 相当于 this.$emit。 3.6 计算属性与监视 1.computed函数 与Vue2.x中computed配置功能一致 写法 templatep姓input typetext v-modelperson.firstName/pp名input typetext v-modelperson.lastName/pp全名{{ person.fullName }}/pp全名修改input typetext v-modelperson.fullName/p/templatescriptimport {ref, reactive} from vue import {computed} from vueexport default {name: App,setup() {const person reactive({firstName: 刘,lastName: 亦非})// let fullName computed(() {// return person.firstName - person.lastName// })// 或者,传入箭头函数// person.fullNamecomputed(() {// return person.firstName - person.lastName// })// 修改传入配置项目person.fullName computed({get() {return person.firstName - person.lastName},set(value) {const nameArr value.split(-)person.firstName nameArr[0]person.lastName nameArr[1]}})return {person}}, } /script 2.watch函数 与Vue2.x中watch配置功能一致 两个小“坑” 监视reactive定义的响应式数据时oldValue无法正确获取、强制开启了深度监视deep配置失效。监视reactive定义的响应式数据中某个属性时deep配置有效。templateh2年龄是{{ age }}/h2button clickage点我年龄增加/buttonhrh2姓名是{{ person.name }}/h2button clickperson.name?点我姓名变化/buttonhrh2sum是{{ sum }},msg是{{ msg }}/h2button clicksum点我sum变化/button|button clickmsg?点我msg变化/button/templatescriptimport {ref, reactive} from vue import {watch} from vueexport default {name: App,setup() {const age ref(19)const person reactive({name: lqz,age: 20})//1 监听普通watch(age, (newValue, oldValue) {console.log(sum变化了, newValue, oldValue)})// 2 监听对象watch(() person.name, (newValue, oldValue) {console.log(person.name变化了, newValue, oldValue)})// 3 监听多个const sum ref(100)const msg ref(很好)watch([sum, msg], (newValue, oldValue) {console.log(sum或msg变化了, newValue, oldValue)})return {person, age, sum, msg}}, } /script 3.watchEffect函数 watch的套路是既要指明监视的属性也要指明监视的回调。 watchEffect的套路是不用指明监视哪个属性监视的回调中用到哪个属性那就监视哪个属性。 watchEffect有点像computed 但computed注重的计算出来的值回调函数的返回值所以必须要写返回值。而watchEffect更注重的是过程回调函数的函数体所以不用写返回值。//watchEffect所指定的回调中用到的数据只要发生变化则直接重新执行回调。 watchEffect(() {const x1 sum.valueconst x2 person.ageconsole.log(watchEffect配置的回调执行了)})3.7 生命周期 Vue3.0中可以继续使用Vue2.x中的生命周期钩子但有有两个被更名 beforeDestroy改名为 beforeUnmountdestroyed改名为 unmountedVue3.0也提供了 Composition API 形式的生命周期钩子与Vue2.x中钩子对应关系如下 beforeCreatesetup()createdsetup()beforeMount onBeforeMountmountedonMountedbeforeUpdateonBeforeUpdateupdated onUpdatedbeforeUnmount onBeforeUnmountunmounted onUnmounted 3.8 自定义hook函数 什么是hook—— 本质是一个函数把setup函数中使用的Composition API进行了封装。 类似于vue2.x中的mixin。 自定义hook的优势: 复用代码, 让setup中的逻辑更清楚易懂。 3.8.1 打点功能 templateh2点击的x坐标{{ point.x }},y坐标{{ point.y }}/h2/templatescriptimport {reactive} from vue import {onMounted, onBeforeUnmount} from vueexport default {name: Point,setup() {const point reactive({x: 0,y: 0})function getPoint(event) {console.log(event.pageX)console.log(event.pageY)point.x event.pageXpoint.y event.pageY}// 挂在完成开始执行onMounted(() {window.addEventListener(click, getPoint)})// 接除挂载时执行onBeforeUnmount(() {console.log(sss)window.removeEventListener(click, getPoint)})return {point}}, } /script templatedivbutton clickisShow!isShow点我显示隐藏/buttonPoint v-ifisShow/Point/div/templatescriptimport {ref, reactive} from vue import Point from ./components/Point.vue; import Demo from ./components/HelloWorld.vueexport default {name: App,components: {Demo, Point},setup() {const isShow ref(true)return {isShow}}, } /script3.8.2 使用hook实现打点 uesPoint.js import {onBeforeUnmount, onMounted, reactive} from vue;export default function () {let point reactive({x: 0,y: 0})function getPoint(event) {console.log(event.pageX)console.log(event.pageY)point.x event.pageXpoint.y event.pageY}// 挂在完成开始执行onMounted(() {window.addEventListener(click, getPoint)})// 接除挂载时执行onBeforeUnmount(() {console.log(sss)window.removeEventListener(click, getPoint)})return point }Point.vue templateh2点击的x坐标{{ point.x }},y坐标{{ point.y }}/h2/templatescriptimport usePoint from ../hooks/usePoint.js export default {name: Point,setup() {let point usePoint()console.log(point)return {point}}, } /script 10.toRef 作用创建一个 ref 对象其value值指向另一个对象中的某个属性。 语法const name toRef(person,name) 应用: 要将响应式对象中的某个属性单独提供给外部使用时。 扩展toRefs 与toRef功能一致但可以批量创建多个 ref 对象语法toRefs(person) templatedivh2姓名{{ name }}/h2h2年龄{{ age }}/h2button clickage改年龄/button| button clickname~改姓名/button/div/templatescriptimport {ref, reactive,toRefs} from vueexport default {name: App,setup() {const person reactive({name: lqz,age: 19})return {...toRefs(person)}}, } /script//对象展开语法let obj1 {foo: bar, x: 42}; let obj2 {foo: baz, y: 13}; let mergedObj {...obj1, ...obj2}; console.log(mergedObj)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站维护公司推荐建网站和建小程序多少钱

uboot启动流程分析如下: 第一阶段: a -- 设置cpu工作模式为SVC模式 b -- 关闭中断,mmu,cache v -- 关看门狗 d -- 初始化内存,串口 e -- 设置栈 f -- 代码自搬移 g -- 清bss h -- 跳c 第二阶段 a -- 初始化外设,进入超…

只会后端不会前端如何做网站郑州的网站公司哪家好

实验报告记录 得到实验结果 转载于:https://www.cnblogs.com/ma1998/p/11536959.html

无需登录即可在管理员页面发现XSS漏洞的技术解析

本文详细介绍了作者如何通过参数模糊测试技术在管理员登录页面发现XSS漏洞的全过程。从目标侦察到参数发现,再到漏洞利用,完整展现了白帽黑客的漏洞挖掘思路和方法,重点展示了Arjun工具在发现隐藏参数过程中的关键作…

网站后期维护是做什么如何做好网站seo

mysql开启远程连接 今天在服务器安装了mysql,准备用mysqlguitools远程登录的时候出错,提示:Host xxx is not allowed to connect to this MySQL server。网上找了一些资料,是mysql未开启mysql远程访问权限导致。 记录解决方案供以…

企业网站要怎么做win7建设网站教程

W外链地址wai.cn 在数字化时代的浪潮中,私域流量的价值愈发凸显,成为企业获取用户、建立品牌忠诚度、提升转化率的关键手段。抖音,作为当下最热门的短视频社交平台之一,其用户基数庞大、互动性强,为企业私域引流提供了…

人网站设计与制作做网站哪家南京做网站

Linux C 027-STL之deque容器 本节关键字:Linux、C、deque 相关库函数:pubsh_back、begin、front、sort deque基本概念 功能:双端数组,可以对头端进行插入删除操作。 deque 与 vector 的区别: (1&#x…

微网站开发需求房产信息网 源码

随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。 这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般;也有些人从一般搬的学校毕业&#…

优秀网站 要素同一ip网站

组网需求 如图1所示,企业网内部LAN侧的语音、视频和数据业务通过Switch连接到RouterA的Eth2/0/0上,并通过RouterA的GE3/0/0连接到WAN侧网络。 不同业务的报文在LAN侧使用802.1p优先级进行标识,在RouterA上根据报文的802.1p优先级入队列&…

平顶山建设公司网站微信公众平台app

1. setState setState更新状态的2种写法 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用 (2). setState(updat…

深圳网站建设zvge潮流印花图案设计网站

Vue 是如何将一份模板转换为真实的 DOM 节点的&#xff0c;又是如何高效地更新这些节点的呢&#xff1f;我们接下来就将尝试通过深入研究 Vue 的内部渲染机制来解释这些问题。 1 虚拟 DOM <template><div id"app">this is son component</div> &…

哪些网站做国际贸易比较好2024舆情信息范例8篇

学习使用js/jquery获取指定class名称的三种方式 简介一、获取元素的class名称1、通过原生JS获取元素的class名称2、通过Jquery获取元素的class名称 二、应用1、样式修改2、动画效果实现 简介 在开发网页时&#xff0c;我们经常需要通过JS获取元素的class名称进行一些操作&…

常德网站开发网页设计图片横排代码

目录 3.2 YOLOv5框架的分析 3.3改进算法的基本思想 3.4改进聚类算法 3.5重构损失函数模型和NMS算法<

重庆大渡口营销型网站建设价格上海 企业

准备工作&#xff1a; ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix&#xff0c;可视化rviz 1、安装ubuntu 16.04系统与安装ROS kinetic版本自行百度安装。一下链接可作为参考。 http://blog.csdn.net/weicao1990/article/details/52575314 2…

网站做信息流做实验网站

微博现在日活达到了 2 亿&#xff0c;微博广告是微博最重要且稳定的收入来源&#xff0c;没有之一&#xff0c;所以微博广告系统的稳定性是我们广告运维所有工作中的重中之重。 作者&#xff1a;孙燕来源 微博现在日活达到了 2 亿&#xff0c;微博广告是微博最重要且稳定的收入…

网站提交有没有个人网站

开源数据科学平台Anaconda简介 零、时光宝盒 最近&#xff0c;某金融行业女性选择以跳楼的形式结束自己的生命&#xff0c;这件不幸的事情成了热门话题&#xff0c;各种猜测的都有&#xff0c;有些人评论的话真的很过分。我想起前段时间看到的&#xff0c;有个女学生跳江&#…

婚恋网站建设项目创业计划书茂名制作网站软件

GSEP 1级样题 闰年统计 题目描述 小明刚刚学习了如何判断平年和闰年&#xff0c;他想知道两个年份之间&#xff08;包含起始年份和终止年份&#xff09;有几个闰年。你能帮帮他吗&#xff1f; 输入格式 输入一行&#xff0c;包含两个整数&#xff0c;分别表示起始年份和终止…

泰州公司做网站wordpress 设置显示中文

一.数据集制作 1.标注软件&#xff1a;roLabelImg roLabelImg是基于labelImg改进的&#xff0c;是用来标注为VOC格式的数据&#xff0c;但是在labelImg的基础上增加了能够使标注的框进行旋转的功能。 2.数据格式转换 2.1 xml转txt # 文件名称 &#xff1a;roxml_to_dota.p…

网站建设业务介绍绵阳企业网站建设

作为管理者&#xff0c;一谈到生产管理&#xff0c;你可能会想到很多生产过程中的问题&#xff1a; 产量无法实时统计&#xff1b; 计划不能跟踪进度&#xff1b; 质量追溯无法实现...... 等等一系列核心问题。 结合这些核心痛点&#xff0c;分享一套符合现在生产的智能化解决…

网站搭建教学wordpress做ip统计

一、MySQL的日常备份方案&#xff1a;全备增量备份&#xff1a;1、周日凌晨三点进行全备&#xff1b;2、周一到周日增量备份。不是往常的周日全备份&#xff0c;周一到周六增量备份&#xff0c;这样如果周日数据库在完全备份前出问题&#xff0c;恢复完成后&#xff0c;会少周日…

怎样做网站的当前位置栏关于建设网站的报告书

Java加密的常用的加密算法类型有三种 1单向加密&#xff1a; 也就是不可逆的加密&#xff0c;例如MD5,SHA,HMAC 2对称加密&#xff1a; 也就是加密方和解密方利用同一个秘钥对数据进行加密和解密&#xff0c;例如DES&#xff0c;PBE等等 3非对称加密&#xff1a; 非对称加…