美文网首页
Vue程序入口及渲染

Vue程序入口及渲染

作者: SpringAlways | 来源:发表于2020-09-10 20:03 被阅读0次

万物归宗,追根溯源。齐天大圣起源于灵石崩裂,程序入口起源于main函数,vue也不例外,main.js就是vue程序的入口。

从最简单入手,main.js里只写这一行
console.log('Hello Vue~');

看下运行结果

image-20200910171824793.png
改变一下,渲染个页面出来

新建一个页面App.vue

<template>
  <div id="app">
    <h1>Hello, Vue~</h1>
  </div>
</template>

<script>
  export default {
    name: 'App'
  }
</script>

把main.js修改如下

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


new Vue({
  render: h => h(App),
}).$mount('#app');
yarn serve
image-20200910173445184.png

vue中,html标签必须套在<template>中才可被识别。

但是Hello,Vue~是hard code的,我们把它变为动态的。

插值表达式

把App.vue稍作修改, Hello Vue~修改为{{message}}, 在script中,定义data()方法,返回message的值。结果和上文一致。

<template>
  <div id="app1">
    <h1>{{message}}</h1>
  </div>
</template>

<script>

  export default {
    name: 'App',
    data() {
      return {
        message: 'Hello Vue~'
      };
    }
  }
探究下main.js中的 render: h => h(App) 到底是什么意思

这是个es6语法

render: h => h(App)

等价于

render: h => {return h(App);}

等价于

render: function(h) { return h(App);}

等价于

render: function(createElement) { return createElement(App); }

这个语句的意思就是渲染页面,通过render函数。

创建vue实例时,通过render callback来渲染dom结构;render函数的参数是createElement函数,createElement函数的参数是App;这么设计的目的是渲染(render)的形式可以多种多样,比如createXXX,updateXXX,deleteXXX,而具体操作的对象也是多样化,只不过默认是create。

相关文章

网友评论

      本文标题:Vue程序入口及渲染

      本文链接:https://www.haomeiwen.com/subject/dgfmektx.html