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

手机o2o网站建设百安居装修官网

手机o2o网站建设,百安居装修官网,视频链接怎么制作,苏州相城区网站建设目录 一、Vue3 从入门到进阶 1.1、Vue3 相比于 Vue2 好在哪里#xff1f; 1.2、创建 vue-cli3 脚手架 1.3、Vue3 的使用 1.3.1、拉开序幕的 setup 1.3.2、ref 函数 什么是响应式数据 ref 响应式处理 1.3.3、reactive 1.3.4、reactive 对比 ref 1.3.5、setup 的参数… 目录 一、Vue3 从入门到进阶 1.1、Vue3 相比于 Vue2 好在哪里 1.2、创建 vue-cli3 脚手架 1.3、Vue3 的使用 1.3.1、拉开序幕的 setup 1.3.2、ref 函数 什么是响应式数据 ref 响应式处理 1.3.3、reactive 1.3.4、reactive 对比 ref 1.3.5、setup 的参数props、context 1.3.6、computed 计算属性 一、Vue3 从入门到进阶 1.1、Vue3 相比于 Vue2 好在哪里 Ps以下数据来源于官网 a性能提升 打包大小减少 41%.初次渲染快 55%更新渲染快 133%.内存减少 54%....... b 源码升级 使用 Proxy 代替 defineProperty 实现响应式.重写虚拟 DOM 的实现和 Tree-Shaking...... c拥抱 TypeScript Vue3 可以更好的支持 TypeScript d新特性 setup 配置ref 与 reactivewatch 与 watchEffectprovide 与 inject 1.2、创建 vue-cli3 脚手架 Ps具体怎么创建可以看这篇 http://t.csdnimg.cn/rq4slhttp://t.csdnimg.cn/rq4sl a查看当前 vue-cli 的版本确保在 4.5.0 以上. b安装或者升级 vue/cli npm install -g vue/cli c创建 vue create vue_demo d启动 cd vue_demo npm run serve e修改 vue.config.js 内容为如下内容就是为了关闭语法检查 fmain.js 说明 //引入的不再是 vue 构造函数了, 引入的是一个名为 createApp 的工厂函数 import { createApp } from vue import App from ./App.vue//创建应用实例对象 —— app const app createApp(App) //挂载 app.mount(#app)g新特性之一vue3 的模板接口可以没有根标签 1.3、Vue3 的使用 1.3.1、拉开序幕的 setup vue3 中有一个新的配置项值是一个函数.  他是所有组合 API 的“舞台”也就是说之前 vue2 组件中使用到的 data、methods...... 都要配置在 setup 中. asetup 函数有三种返回值 若返回一个对象那么对象的属性、方法在模板种就可以使用了.若返回的是一个渲染函数那么就可以自定义渲染内容后面细讲当前只做了解. b注意点请忘掉 vue2 中的 data、methods... 现在是 vue3 的时代 尽量不要和 vue2.x 混用原因如下 vue2.x 配置的 data、methods、 computed....... 种可以访问到 setup 中的属性方法但是 setup 中不能访问到 vue2.x 配置中的 data、methos、computed......如果有重名setup 优先.setup 不是一个 async 函数因为返回值不再是 return 的对象而是 promise 模板看不到 return 对象中的属性. c案例如下 template!-- vue3 中模板接口可以没有跟标签 --div你好/divdiv欢迎来到 vue3/divdiv{{ name }}/divbutton clicksayHi点我进行自我介绍~/button /templatescript export default {name: App,//这里暂时限不考虑响应式的问题setup() {//数据let name cyk;let age 18;//方法function sayHi() {alert(大家好啊我是${name}, 今年 ${age} 了);}return {//模板中需要什么数据就返回什么name,age,sayHi,};}, }; /script点击按钮效果如下  d你会发现当你定义的变量越多需要 return 的就越多代码可读性降低了不少.  我们实际上可以把一组关联的数据封装到对象中这样直接返回这个对象就可以了这样也要注意的是需要通过 对象.属性名 的方式获取属性.  templatedivname: {{ user.name }}/divdivage: {{ user.age }}/divdivweight: {{ user.weight }}/div /templatescriptexport default {name: App,setup() {let user {name: cyk,age: 18,weight: 60kg,};return {user,};}, }; /scripte当然有一天你发现自己定义的对象越来越多最后 return 的东西越来越多可读性又降低了那么你可以借鉴 vue2 的方式这样定义数据doge setup() {let data {student: {//...},teacher: {//...},//......};return {data,};}, 1.3.2、ref 函数 什么是响应式数据 你可以简单的将响应式数据理解为动态数据也就是说你对响应式数据的修改在页面是会得到及时的反馈. 例如通过点击按钮对 name 进行修改操作同时希望页面能得到及时的反馈. 非响应式 templatedivname: {{ name }}/divbutton clickchangeName()点我改变 name/button /templatescript export default {name: App,setup() {let name cyk;function changeName() {name lyj;alert(修改完成!);}return {name,changeName,};}, }; /script点击按钮之后name 并没有修改这就是非响应式那么如果我们希望它是响应式就需要依靠 ref 函数了 ref 响应式处理 aref 就是用来处理一个响应式数据. 语法如下 // 创建一个响应式数据的引用对象(reference 对象简称 ref 对象) const xxx ref(initValue)// js 中操作数据 xxx.value// 模板中读取数据 div{{xxx}}/div 使用步骤 引入 ref 组件这一步很容易忘记定义 响应式 对象返回对象 通过 console.log(ref(lyj))就可以观察到以下结果 ref 底层是通过 Object.defineProperty() 的 get 和 set 来实现响应式的  b例如通过点击按钮对 name 进行修改操作同时希望页面能得到及时的反馈. templatedivname: {{ name }}/divbutton clickchangeName()点我改变 name/button /templatescript import { ref } from vue; //引入 ref 组件export default {name: App,setup() {let name ref(cyk); //这里返回的是一个对象通过 .value 就可以拿到值function changeName() {name.value lyj; //必须通过 value 才能获取到对应的值alert(修改完成!);}return {name,changeName,};}, }; /script点击按钮前 点击按钮后 c那么问题来了如果 ref 中的值是一个嵌套对象该怎么获取里面的值呢难道每嵌套一层都需要使用 value 来获取一层么 如果是嵌套对象我们可以先这样理解ref 就相当于对对象的一层封装嘛通过 .value 的方式就可以拿到对象此时对象无论怎么封装原先 js 语法怎么获取现在就怎么处理. 如下怎么获取 name 和 c 呢 let user ref({name: cyk,a: {b: {c: 666,},},}); name 就不多说了首先 ref 是通过里面的值是一个 {...} 对象因此通过 value 就可以拿到这个对象那么接下来通过对象拿属性值的方式获取即可. function getUser() {console.log(user);console.log(user.value.name);console.log(user.value.a.b.c);} 对于对象的处理 ref 底层是 调用了 reactive 的 Proxy 来实现响应式的并通过 Reflect 操作内部的数据. 1.3.3、reactive a通过上面讲述可以看出ref 每次获取值都需要通过 .value 的方法获取很麻烦.  那么接下来要将的 reactive 就是用来解决这个问题的. breactive 就是用来定义个 对象类型 的响应式数据基本类型不能用它只能使用 ref 函数. Ps实在想用你可以把基本类型封装成对象啊 creactive 内部是基于 ES6 的 Proxy 实现通过代理对象操作源对象内部数据进行操作. d用法如下 templatediv{{ user.name }}/divdiv{{ user.age }}/divdiv{{ user.likes[2] }}/divdiv{{ user.a.b.c }}/divbutton clickchangeInfo点我改变信息/button /templatescript import { ref, reactive } from vue; //引入 reactive export default {name: App,setup() {let tips ref(1);let user reactive({name: cyk,age: 18,likes: [唱歌, 弹琴, 谈情],a: {b: {c: 666,},},});function changeInfo() {// ref 定义的响应式对象需要通过 .value 的方式获取tips.value 2;// reactive 定义的响应式对象可以直接获取user.name lyj;user.age 17;user.likes[2] 谈锤子;user.a.b.c 999;}return {tips,user,changeInfo,};}, }; /script 1.3.4、reactive 对比 ref a定义数据的角度 ref 可定义的数据基本类型、对象或数组类型 但是对于 对象或数组类型内部是通过 reactive 转为 代理对象。reactive 可定义的数据对象或数组类型. b使用的角度 ref操作数据需要 .value   在模板中读取数据不需要 .valuereactive操作和读取数据都不用 .value c原理角度 ref通过 Object.defineProperty() 的 get 与 set 来实现响应式.reactive通过使用 Proxy 来实现响应式并通过 Reflect 操作源对象内部的数据. 1.3.5、setup 的参数props、context setup 的参数如下 aprops值为对象包含组件外部传递过来且组件内部声明接收了的属性 例如父组件向 User 子组件传递数据 templateUser namecyk :ageage / /templatescript import User from ./views/User.vue; //引入自定义的组件 User export default {name: App,components: { User }, //声明setup() {let age 18;return {age,};}, }; /script User 子组件中使用数据 templateh1我是一个学生/h1divname: {{ user.name }}/divdivage: {{ user.age }}/div /templatescript export default {name: User,props: [name, age],setup(props) {let user {name: props.name,age: props.age,};return {user,};}, }; /scriptbcontext上下文对象 atts值为对象包含组件外传递过来但没有在 props 配置中声明的属性相当于 this.$attrs.slots受到的插槽内容相当于 this.$slots.emit分发自定义事件的函数相当于 this.$emit. 父组件中定义 hello 事件自定义名为 helloBtn 传递给子组件 User. template!-- 自定义传递的事件名当前组件 setup return 的函数 --User helloBtnhello namecyk :ageage / /templatescript import User from ./views/User.vue; //引入自定义的组件 User export default {name: App,components: { User }, //声明setup() {let age 18;function hello() {alert(hello);}return {age,hello,};}, }; /script子组件中通过 emits 接收 helloBtn 事件 templateh1我是一个学生/h1divname: {{ user.name }}/divdivage: {{ user.age }}/divbutton clicktest父组件传递的事件/button /templatescript export default {name: User,props: [name, age],//拿到父组件传递的事件他会交给 setup 中的 context 参数emits: [helloBtn],setup(props, context) {let user {name: props.name,age: props.age,};function test() {//拿到父组件的事件context.emit(helloBtn);}return {user,test,};}, }; /script1.3.6、computed 计算属性 与 vue2.x 中的 computed 配置功能一样凡是需要实时计算的地方就使用它即可 a简写没有考虑计算属性被修改的情况 templateh1求和/h1divinput typenumber v-modeltest.a //divdivinput typenumber v-modeltest.b //divdiv结果: {{ result }}/div /templatescript import { computed, reactive } from vue; export default {name: App,setup() {let test reactive({a: 0,b: 0,});let result computed(() {return test.a test.b;});return {test,result,};}, }; /scriptb完整写法重写 get  set 方法考虑读和写 假设需求是读取时要 a 和 b 的和修改时要求得到  result 的均分到 a 和 b  templateh1求和/h1divinput typenumber v-modeltest.a //divdivinput typenumber v-modeltest.b //divdivspan结果: /spaninput typenumber v-modelresult //div /templatescript import { computed, reactive } from vue; export default {name: App,setup() {let test reactive({a: 0,b: 0,});//简写没有考虑计算属性被修改的情况// let result computed(() {// return test.a test.b;// });//完整写法重写 get set 方法let result computed({get() {return test.a test.b;},set(value) {test.a value / 2;test.b value / 2;},});return {test,result,};}, }; /script 当 a  5、b  9 读取如下 当 result 15a 和 b 被修改的情况如下 Ps下一篇 “ Vue3 - 从入门到进阶这一套就够了案例 效果演示二”
http://www.pierceye.com/news/657659/

相关文章:

  • 怎样查看网站备案号自己录入数据做问卷的网站
  • 怎么提高网站的百度收录网页设计师考试报名
  • 北京网站建设公司联系方式常德网站建设专业品牌
  • 福州网站设计哪家做的好男科医院网站开发策划
  • 网站建设公司swot分析室内设计者联盟官网
  • 深圳手机商城网站设计游戏网站seo怎么做
  • 网站上传 文件夹结构国内响应式网站
  • 做logo图标的网站自助建站系统网站建设开发
  • 韩国站群服务器网络推广公司网站
  • 网站公司设计公司设计上海展会2021门票
  • 做微网站的公司哪家好刷百度关键词排名优化
  • php网站建设一流程胶南网站建设多少钱
  • 网站开发证书网站推广应该怎么做?
  • 网站规划与网页设计案例网站建设php招聘
  • 网站内容页优化阿里巴巴做网站么
  • 网站百度收录秒收方法网页制作员厂家
  • 免费做网站怎么做网站619去加网 wordpress
  • 网站建设基本资料信息流优化师是干什么的
  • 网站开发项目经理招聘高级网站设计效果图
  • 上海建网站社交型网站开发
  • 西安建网站做自动化设备哪个网站
  • 深圳优化网站关键词wordpress如何拖移小工具
  • 优秀网站设计欣赏国内网站后期
  • 计算机应用技术php网站开发php网站进后台
  • asp网站安全小x导航正品
  • 陕西省建设监理协会网站成绩查询如何用网站做课件
  • 帝国网站怎么仿站个人做旅游网站的意义
  • 网站建设白沟做公众号策划的网站
  • 站长工具怎么用知名做网站哪家好
  • 做视频网站怎么备案企业内网