最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Vue渲染过程浅析

来源:动视网 责编:小采 时间:2020-11-27 22:00:05
文档

Vue渲染过程浅析

Vue渲染过程浅析:Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。但是模板毕竟是模板,不是真实的dom节点。从模板到真实dom节点还需要经过一些步骤 把模板编译为render函数 实例进行挂载, 根据根节点render函数的调用,递归的生成虚拟dom 对比虚拟dom,渲染
推荐度:
导读Vue渲染过程浅析:Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。但是模板毕竟是模板,不是真实的dom节点。从模板到真实dom节点还需要经过一些步骤 把模板编译为render函数 实例进行挂载, 根据根节点render函数的调用,递归的生成虚拟dom 对比虚拟dom,渲染


当props会触发组件的重新渲染是怎么发生的呢?

把父组件的data通过props传递给子组件的时候,子组件在初次渲染的时候生命周期或者render方法,有调用data相关的props的属性, 这样子组件也被添加到父组件的data的相关属性依赖中,这样父组件的data在set的时候,就相当于触发自身和子组件的update。

例子如下:

// main.vue
import Vue from 'vue'
import App from './App'

const root = new Vue({
 data: {
 state: false
 },
 mounted() {
 setTimeout(() => {
 this.state = true
 }, 1000)
 },
 render: function(h) {
 const { state } = this // state 变化重新触发render
 let root = h(App, { props: { status: state } })
 console.log('root:', root)
 return root
 }
}).$mount('#app')

window.root = root
// App.vue
<script>
export default {
 props: {
 status: Boolean
 },
 render: function (h){
 const { status } = this
 let app = h('h1', ['hello world'])
 console.log('app:', app)
 return app
 }
}
</script>

截图如下:


main.js中 state 状态发生了变化,由false => true, 触发了自身与子组件的render方法。

补充

上面的内容是本人的一些使用心得,由于水平有限, 内容有些错误或者表达不当。多欢迎大神来指导!!!

PS:vue渲染过程的{{xxx}}显示的解决办法

这是由于浏览器的渲染机制导致的,浏览器是从头到尾  如果你的js引用在底部,那么浏览器会先加载dom此时,你用于渲染的{{}}识别符,因为还没读到该识别符对应的js文件,所以会被解析为字符串而显示在页面中,我们可以用过自定义属性v-cloak解决,

实例对象对应标签中加入 v-cloak:

<div id="wrap" v-cloak>

然后在css中给定义属性选择器 

  [v-cloak]{

  display:none

}

vue实例创建完成后会把v-cloak去掉,在没创建实例对象时,该标签内的内容都会被隐藏

文档

Vue渲染过程浅析

Vue渲染过程浅析:Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。但是模板毕竟是模板,不是真实的dom节点。从模板到真实dom节点还需要经过一些步骤 把模板编译为render函数 实例进行挂载, 根据根节点render函数的调用,递归的生成虚拟dom 对比虚拟dom,渲染
推荐度:
标签: 流程 过程 VUE
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top