vue渲染小程序,vuejs开发小程序

http://www.itjxue.com  2023-01-21 02:17  来源:未知  点击次数: 

vue 数据渲染

就我目前所知道的渲染方式有??

1.插值表达式

2.v-text

3.v-html

但是使用插值表达式会有一些问题? 即插值闪烁

所谓的插值闪烁 就是数据不是预先订好的? 而是后期通过网络或者其他方式获取的? 存在一定时间的延迟? 等待数据准备完毕后才会进行渲染? 而在这段空档期? ?就会显示出插值表达式 即页面中会显示如下的情况

v-text也是负责将数据渲染到页面中去的? 使用?v-text 可以完美解决插值闪烁问题? ?但是?v-text 也不是完美的??v-text 不能识别 标签 (例如 p/p , a/a 等HTML中的标签)它会将标签一并写入? ?v-text 只能渲染纯文本的数据

页面结果如下:

v-html?也是负责将数据渲染到页面中去的? 使用?v-html 可以完美解决插值闪烁问题??v-html 不会有识别不了页面标签的情况??v-html是既可以识别文本? 又可以识别标签

页面结果如下:

v- if? v-else? ?v-else-if? ? 都与JavaScript 中的if? else? else if? ?一样

执行结果如下:

当 a1 为true 时? 则是显示? “我是数据一”? ? ?

v- if? v-else? ?v-else-if? ? 只会执行其中一个满足条件的

运行结果如下:

1.v-if??

在条件成立的时候? 会创建一个标签即里面的内容? ? 如果条件不成立的时候? 那么则会销毁这个标签? ?在页面中的 (检查 F12? ? 元素 )也是不存在的

v-if? 只会在条件成立时创建

2.v-show

在条件成立的时候? 标签会显示出来? ?不成立的时候 会隐藏起来? ?v-show 的显示与隐藏都是通过 css 属性设置的? 而且在页面中的 (检查 F12? ? 元素 )也是存在的

v-show 一开始就创建? ?但判断条件是否满足 来显示与隐藏

VUE—数据渲染

学习VUE的第一步,就是应该知道VUE是如何将数据渲染出来的。

????????????差值表达式 一般是以{{}},两个大括号嵌套成的,插值表达式中一般指定变量,也可以指定表达式等等。

????????????但是,插值表达式存在差值闪烁的问题,那么,什么叫 差值闪烁

????????????在JavaScript中,数据渲染是innerText和innerHTML

????????????在jQuery中,数据渲染是text()和html()

????????????在vue中,也有 v-text 和 v-html 两种,那这两种有什么区别呢

????????????v-text可以渲染数据,并且解决差值闪烁的问题,但是却无法将识别标签,只能渲染纯文本数据

? ? ? ? ? ? v-html可以渲染数据,并且解决差值闪烁的问题,而且不仅可以识别纯文本数据,也可以识别标签数据

? ? ? ? ? ?? 根据条件,判断是否渲染页面,如同JavaScript中的 if else一样,

? ? ? ? ? ?? 根据条件,判断是否渲染页面

? ? ? ? ? ?? v-for,循环遍历数据,同JavaScript中的for循环

? ? ? ? ? ?? 参数1,data,是数据

? ? ? ? ? ?? 参数2,index,是下标

? ? ? ? ? ???参数1,data,是数据

? ? ? ? ? ?? 参数2,index,是下标

? ? ? ? ? ??

(3)遍历对象

? ? ? ? ? ?? 参数1,oa,是属性值

? ? ? ? ? ?? 参数2,ob,是属性名

? ? ? ? ? ? 参数3,oc,是下标

? ? ? ? ? ?? v-on:事件绑定?

?????????????JavaScript中的onClick?

? ? ? ? ? ? ? jQuery中的click()?

? ? ? ? ? ? ? vue中的v-on:click,简写@click

? ? ??

vue生命周期和小程序生命周期

在使用vue和小程序时,会发现一些生命周期钩子函数的异同之处:

首先看下图

这是8个vue生命周期钩子函数(为了方便阅读,其调用时间与方法均注释在函数中)

以下三种生命周期钩子函数是针对 keep-live 和 识别子元素错误时调用

同上,其调用均注释在函数中,方便理解;

这是小程序常用页面生命周期(运用注释在对应函数中)

以上为小程序其他页面函数

以上我们可以看到两种页面生命周期函数的异同点:

vue小程序中都具备页面创建,页面渲染,和页面销毁时候的调用钩子,但是在小程序中,结合其特别的存在,前后台执行、滑动滚动执行这一类钩子函数都为开发者配备的比较齐全;

另外还需要注意的是,在vue中的数据改变使用this.data直接进行更改即可,但是在小程序中,数据的改变需要调用this.setData() 进行改变(见上图)!

END

vue页面的渲染过程

我们从最简单的new Vue开始:

1、new Vue,执行初始化

2、挂载$mount方法,通过自定义Render方法、template、el等生成Render函数

3、通过Watcher监听数据的变化

4、当数据发生变化时,Render函数执行生成VNode对象

5、通过patch方法,对比新旧VNode对象,通过DOM Diff算法,添加、修改、删除真正的DOM元素

至此,整个new Vue的渲染过程完毕。

1、把模板编译为render函数

2、实例进行挂载, 根据根节点render函数的调用,递归的生成虚拟dom

3、对比虚拟dom,渲染到真实dom

4、组件内部data发生变化,组件和子组件引用data作为props重新调用render函数,生成虚拟dom, 返回到步骤3

详见链接:

vue和小程序的比较

vue的钩子函数:

beforeCreat: 创建前

created: 创建

beforeMount: 挂载前

mounted: 挂载

beforeupdate: 更改前

updated: 更改

beforeDestroy: 销毁前

destroyed: 销毁

小程序的钩子函数:

onLoad: 页面加载

onShow: 页面显示

onReady: 页面初次渲染完成

onHide: 页面隐藏

onUnload: 页面卸载

vue一般会在created或者mounted中请求数据,而在小程序,会在onLoad或者onShow中请求数据

vue动态绑定一个变量的值为元素的某个属性的时候,会在变量前面加上冒号:

小程序绑定某个变量的值为元素属性时,会用两个大括号括起来

vue使用v-if 和v-show控制元素的显示和隐藏

小程序使用wx-if和hidden控制元素的显示和隐藏

vue使用v-on:event绑定事件,或者使用@event绑定事件,@event.stop阻止事件冒泡

小程序用bindtap(bind+event),或者catchtap(catch+event)绑定事件,阻止事件冒泡

vue中如下:

小程序中如下:

vue中的表单元素上加v-model,然后再绑定data中对应的值

小程序中通过this.setData({key:value})将表单上的值赋值给data中的对应值

vue中需要在触发事件的方法中,把需要传递的数据作为形参传入

小程序中需要将参数作为属性值,绑定到元素上的data-属性上,然后在方法中,通过e.currentTarget.dataset.*的方式获取,从而完成参数传递

(责任编辑:IT教学网)

更多

推荐ASP教程文章