范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

从jQuery到Vue3的快捷通道

  当初使用 jQuery 做了几个简单的项目,算是有一点点了解,现在学习Vue3,发现了一个可以快速转换思维的通道 —— 使用CDN的方式模拟 Vite 建立的项目! CDN方式
  jQuery的使用非常方便,用 script 引入 js文件即可,然后找到DOM即可开始操作。
  而 Vue3 也支持直接用 script 引入的方式,然后使用插值的方式绑定数据,我们来看一下使用方法: 引入 vue.js                                      Vue3 CDN的简单演示   
  这样我们就可以在网页里面使用 Vue 了,另外我们引入了一个UI库——element-plus。 绑定数据和事件
  然后我们写一个 hello word:             
  自增
  {{ count }}              插值
  在模板里面使用双大括号即可实现数据绑定。 事件
  可以使用原生button,也可以使用UI库提供的button,用v-on(简写:@)添加事件。 定义数据
  这里采用 composition API 的方式,使用 ref,实现简单的计数功能。 挂载
  使用 createApp 创建一个App,然后挂载插件、UI库、路由、状态等。
  本篇只做简单介绍,详细介绍请移步官网:https://staging-cn.vuejs.org/ 组件化
  一个项目有很多功能,显然不能把所有代码都放在一起,那么如何管理代码呢?Vue提供了组件化的方式,便于组织代码。
  我们可以建立一个 count.js 文件(单文件组件),实现上面那个简单的计数功能: count.js const { ref } = Vue export default {   name: "count",   template: `      
  自增
  {{ count }}   `   setup() {     const count = ref(0)     return {       count     }   } }
  这样就可以建立一个单独的Vue组件,相关的代码都可以放在这里,管理起来就更容易了。 工程化项目
  一般我们可以用 Vite 建立一个项目,然后安装需要的各种插件,但是这需要我们先了解 node、npm、yarn、vite等,还要先配置好环境,这些对于新手来说容易懵。
  那么能不能 暂时 跳过这些,直接建立一个工程化的项目呢?当然是可以的!
  我们可以模仿 Vite 建立的项目的文件结构,用CDN的方式实现一个项目。
  为啥要用CDN的方式模拟一下呢?因为这样可以先不用了解node等前置知识点,可以比较清晰地看到 Vue 的运作方式,快速理解Vue的特点,可以作为一种过渡方式。 目录结构
  可以发现和 Vite 建立的项目的结构是基本一样的,只是把.vue后缀变成了.js后缀。 加载各种插件                                                                                 pinia 状态管理
  pinia 需要加载两个文件,一个是pinia.js,另一个是其依赖项 vue-demi,实现兼容vue2的功能。 加载 main.js
  main.js 是入口文件,需要在 index.html 使用 type="module" 的方式引入,这样main里面才可以使用"import"。               这里是CDN仿工程化开发的演示...               设置 main.js
  然后在main里面加载根节点、路由设置、状态设置、UI库等操作。 const ver = window.__ver || "?v=0" const pinia = Pinia.createPinia()  Promise.all([   import("./app.js" + ver),   import("./router/index.js" + ver), ]).then((res) => {   Vue.createApp(res[0].default)     .use(res[1].default) // 挂载路由     .use(ElementPlus) // 加载ElementPlus     .use(pinia) // 状态管理     .mount("#app") // 对应p })
  可以直接使用 import App from "./app.js" 的方式加载,但是不好管理缓存。
  所以采用了这种增加版本号的方式,以确保可以加载最新文件。 App.js
  可以在 app.js 做页面布局,当然也可以实现其他功能。 const { ref, defineAsyncComponent } = Vue  // 加载菜单组件 const myMenu = defineAsyncComponent(() => import("./views/menu.js" + window.__ver))  export default {   name: "app",   components: {     myMenu   },   template: `               CND的方式 模仿工程化项目                                                                                                             CND的简单演示。by Vue3、element-plus、Pinia、vue-Router                           `,   setup() {     return {     }   } }
  这里采用异步组件的方式加载子组件,方便设置版本号,确保可以加载最新文件。 设置路由
  为了更方便的加载组件,我们可以使用 vue-router 设置路由。  // 定义路由  const routes = [   {     path: "/",     name: "Home",     component: () => myImport("views/home")   },   {     path: "/pinia",     name: "pinia",     component: () => myImport("views/state/pinia")   },   {     path: "/",     name: "ui",     component: () => myImport("views/ui/ui-elp")   },   {     path: "/h",     name: "h-test",     component: () => myImport("views/h/h")   },   {     path: "/jsx",     name: "jsx-test",     component: () => myImport("views/h/jsx")   } ]  const base = "/cdn3/" const router = VueRouter.createRouter({   history: VueRouter.createWebHistory(base),   routes })  export default router
  如果组件只有js文件,那么可以直接使用 import 来加载,如果组件由js+html组成,需要使用 myImport 来加载,myImport 是我自己封装的函数,在最后介绍。 设置菜单
  我们先做一个简单的菜单: menu.js export default {   name: "menu",   template: `     首页
  pinia
  h的演示
  jsx的演示
  `,   setup() {     return {     }   } }
  这里先使用 router-link 做个简单的连接,也可以使用 el-menu 做菜单。 状态管理
  这里采用最新的 pinia 进行状态管理,因为 Vuex 有点臃肿。
  首先需要在 main.js 里面挂载pinia,见 main 的部分。
  然后我们建立一个js文件,定义一个状态,再建立一个js文件作为组件。 count.js const { defineStore } = Pinia  const testPromie = () => {   return new Promise((resolve) => {     setTimeout(() => {       resolve(100)     }, 500)   }) }  export const useCounterStore = defineStore("counter", {   state: () => {     return { count: 0, name: "" }   },   actions: {     increment() {       this.count ++     },     async loadData(val, state) {       const foo = await testPromie()       this.count += foo       this.name = "async 赋值:" + new Date().valueOf()     },     loadData2(val, state) {       testPromie().then((val) => {         this.count += val         this.name = "异步赋值:" + new Date().valueOf()       })     }   } }) pinia.js
  然后在组件里面引入: // 状态 import { useCounterStore } from "./count.js"  export default {   name: "pinia-test",   setup() {     const test = useCounterStore()     return { count }   } } pinia.html
  我们可以把 template 部分拿出去,做成 html 文件:    测试pinia的状态
  {{ test }}
  修改
  这样一个简单的项目结构就搭建起来了。 小结
  本篇仅为过渡,并不是说正式项目要用这种方式开发,因为缺点也是很明显的。
  当然也是有一些优点: 可以更充分的利用CDN,缓存vue.js这类的变化频率低的 js 文件,只需要更新业务相关的代码即可。 如果CDN不卡的话,加载速度可以更快。 可以利用CDN的资源,缓解自己服务器的压力。 项目可以分模块开发,稳定且基础的模块可以打包、发布到CDN里面使用。 源码和演示源码:https://gitee.com/naturefw-project/vue3-cnd 演示:https://naturefw-project.gitee.io/vue3-cnd/ 补充
  template 部分,如果用字符串的方式写,那么比较麻烦,所以可以分为 html 文件的方式来写,这样可以使用提示、补全和验证等功能。
  然后做一个加载的函数 myImport : window.myImport = (url) => {   return new Promise((resolve, reject) => {     const ver = window.__ver || ""     const baseUrl = window.__basrUrl || "/src/"     // 先加载 js     import(baseUrl + url + ".js" + ver).then((resjs) => {       const js = resjs.default       if (!js.template) {         // 如果模板是空的,表示需要加载 html作为模板         axios.get(baseUrl + url + ".html" + ver).then((resHTML) => {           js.template = resHTML.data           resolve(js)         })       } else {         // 否则直接使用 js 注册组件         resolve(js)       }     })   }) }

2021年中盘点10002000什么手机值得买?这六款绝对是性价比神机首先一定要跟大家强调两个点,第一个,价格可能和你当时的价格会有一些差异,有些波动啊,这个很正常,大家重点看我们推荐的机型就行了,第二个,本期所有推荐机型就是根据我们之前的体验测评数发布两年的iPhone11,现在相当于什么级别的安卓手机呢?发布了两年的iPhone11自从发布以来,销量一直稳居榜单前五。在iPhone12发布之前,iPhone11基本上每月都能拿到销量榜的榜首。即使在今年的七月,iPhone11仍旧拿前世今生那些尼康Zfc和尼康FM2相机的故事尼康于2021年6月正式推出Z系列首款复古风微单Zfc。尼康Zfc对于尼康老用户来说,既熟悉又陌生,因为尼康Zfc的外观正是致敬了于1982年尼康推出的FM2。如今还在坚持使用FM七夕送对象什么礼物好,颜值高又好用的蓝牙耳机一年一度的七夕节马上就要到啦,大家都准备好礼物了吗?其实送蓝牙耳机就挺不错的,既有心意又很实用,今天就整理了一些适合七夕送礼的无线蓝牙耳机,颜值和性能都是杠杠的,一起来看看吧!1X应用日报iPhone13或配备更大的电池,Epic平台勇闯银河系限免今日推荐花样文字Ins特殊字体输入法键盘免费iPhone,iPad48MBL我对世界很满意,有日落星辰也有你!明天就是七夕节啦,攒了好多与对象的合照终于可以在今天一起发了!别忘了用大学生选购电脑应该看什么?一大学生如何选购笔记本电脑?1。笔记本电脑分类我将笔记本电脑分为三大类轻薄本全能本游戏本女同学,建议买轻薄本即可,能满足绝大部分专业需求计算机相关专业的男同学,即使不玩游戏,也建议京东超品日戴尔X推荐官初音未来给你终极购机福利想在夏日热浪中提升冷酷游戏力?想晋升成为创作者实现心中灵感?你要的先锋高能装备尽在戴尔京东超级品牌日主会场戴尔与推荐官初音未来带来年中超值购机优惠众多爆款机型5折秒杀至高24期白条七夕前夕一加放出多重福利一加BudsPro耳机也太香了上个月底,久违的一加为我们带来了旗下首款旗舰级主动降噪耳机一加BudsPro,该耳机设备一出,不禁让人感慨一加不仅手机玩得溜,穿戴设备同样是惊喜满满。这款一加BudsPro无论是在不真实体验这么轻的电脑,怎么才卖5000块钱?你为什么要买笔记本?对于这一点,相信大家的首要需求是便携。影响便携性的因素很多,比如机身的尺寸重量。尺寸这一条取决于你的需求,而重量的控制,则是考验厂家的工艺实力的关键。惠普最新的最简单实用的家庭卡拉ok方案随着网络电视的普及,免费k歌软件也很多,越来越多朋友们有了想在家里实现电视k歌的想法,其实有了网络电视k歌也不再是难事!在电视上面安装一款K歌软件就能想怎么唱就怎么唱。今天分享最简中国出租汽车产业联盟被依法取缔曾多次炮轰网约车此次被取缔的非法社会组织中国出租汽车产业联盟成立于2017年1月11日,其宣称由大众交通北京北汽出租天津市出租重庆市出租广州白云出租深圳西湖等全国50多家出租汽车企业和部分地区行业
荣耀60和小米10S,价格差不多如何选择?建议选择小米10S,综合素质更高。1骁龙870三件套的性能基础比荣耀60骁龙778G好一个档次,而性能是决定手机使用时间长短和流畅度的关键配置。2小米10S主摄一亿像素比荣耀60的平时喜欢打游戏,买了iQOO9,性能拉满,打游戏贼爽平时喜欢打游戏,在朋友的推荐下入了iQ009传奇版,不知道有没有和我一样偏爱直屏的手游玩家哈,直屏玩游戏的优势真的是曲面屏给不到的。手游玩家应该都知道,直屏手机屏幕正面遮挡少,游戏等等党注意了!小鹏汽车官宣涨价13月18日,快科技从小鹏汽车官方获悉,其将对旗下在售车型进行价格调整。具体信息如下受上游原材料价格持续大幅上涨影响,小鹏汽车将对在售车型的价格进行调整,补贴前售价的上调幅度为101甲醇汽车来了,你怎么看明显,短时间内纯电动车全面替代燃油车是不现实的,也是不科学的。然而碳中和犹如达摩斯之剑悬在各个车企头上,推动着车企拼命寻找降低碳排放的方法,其中有发展氢能源的,也有发展甲醇汽车的。路由器品牌排行榜前十名路由器品牌哪个好?创建于1996年,大型网络通讯设备供应商,致力于为大众提供便利的本地局域网络互联和Internet接入手段。TPLINK产品涵盖以太网无线局域网宽带接入电力线通信安防监控等主要领域为什么小米和红米用同一款处理器的手机,价格却差距这么大?除了处理器以外的地方,都使劲节约成本(缩水)举例来说五个地方。1,先说外观方面,电池盖,塑料的几块钱玻璃的三十多,手机中框也是这样铝合金的贵塑料中框便宜。2,还有手机屏幕,你看上去RedmiK50Pro配置强劲价格合理,但是缺点也很明显RedmiK50系列的第二场发布会,发布了多款产品,其中包括了笔记本电视手机等产品,但最热门的还是K系列的手机,在这次发布会当中一共发布了3款手机,分别是RedmiK40SRedm近期小米手机如何去选这三款性能强配置诚心价格不贵不超过3000元华为手机受芯片的制裁,市场老大哥的地位也慢慢在失去,小米OPPO等等其他国产品牌也开始崛起,特别是小米手机,小米手机一直都是高性价比的代名词,基本每款都是高配低价,深受很多朋友的喜车企扎堆涨价!造车新势力价格屠夫零跑扛不住了官宣涨价自从去年新能源汽车爆发以来,电池上游原材料价格暴涨,以及芯片短缺引起的零部件供应价格波动,蔓延至整车企业后,导致近段时间国内新能源汽车涨价成风。特斯拉8天涨价3次,比亚迪也官宣涨价2022年换手机首选这3款,口碑好性能强价格很良心,还能再用4年时间已经来到了3月份,不少新机都已经发布,旧款手机也迎来了一波降价。新机的发布又让人看得眼花缭乱,2022年想换手机,不妨先看看这3款,口碑好性能强价格很良心,用个4年不是问题,闭最低2999,这3款电摩最大续航200km,动力大提速快,适合外卖小哥对于普通车主来说,电动车只是交通工具,但是对于外卖小哥来说,电动车是他们的饭碗,所以一辆动力足,续航远,提速快的电动车是很重要的。小编找到了3款电摩,正好能够满足这几点要求,而且价