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

建设部精神文明建设网站手机百度正式版

建设部精神文明建设网站,手机百度正式版,有赞可以做独立网站吗,建手机版网站初始化应用实例 创建 Vue 实例对象 createApp 中做了两件事: 创建 app 对象保存并重写 mount /*** 创建 Vue 实例对象*/ const createApp ((...args) > {// 1、创建 app 对象,延时创建渲染器,优点是当用户只依赖响应式包的时候&#xff0…

初始化应用实例

  1. 创建 Vue 实例对象

    createApp 中做了两件事:

    1. 创建 app 对象
    2. 保存并重写 mount
    /*** 创建 Vue 实例对象*/
    const createApp = ((...args) => {// 1、创建 app 对象,延时创建渲染器,优点是当用户只依赖响应式包的时候,可以通过 tree-shaking 移除核心渲染逻辑相关的代码,减少体积const app = ensureRenderer().createApp(...args)// 2、保存并重写 mountconst { mount } = appapp.mount = (containerOrSelector) => {// ...}return app
    })
    

    为什么需要重写 mount 方法,而不把相关逻辑放在 app 对象的 mount 方法内部来实现呢?

    答:因为 Vue 不仅仅是为 Web 平台服务,它的目标是支持跨平台渲染createApp 函数内部的 app.mount 方法是一个标准的可跨平台的组件渲染流程,因此需要根据具体场景进行定制化。

  2. 使用 ensureRenderer().createApp() 来创建 app 对象

    // 渲染相关的一些配置,比如:更新属性的方法,操作 DOM 的方法
    const rendererOptions = {patchProp,...nodeOps
    }let renderer
    /*** 检查是否存在渲染器*/
    function ensureRenderer() {return renderer || (renderer = createRenderer(rendererOptions))
    }
    /*** 创建渲染器*/
    function createRenderer(options) {return baseCreateRenderer(options)
    }
    /*** 创建渲染器的基本逻辑*/
    function baseCreateRenderer(options) {// 组件渲染的核心逻辑function render(vnode, container) {// ...}return {render,createApp: createAppAPI(render)}
    }
    /*** 创建应用实例的 API*/
    function createAppAPI(render) {// 创建应用实例,接收的两个参数:rootComponent - 根组件的对象 和 rootProps - props参数return function createApp(rootComponent, rootProps = null) {const app = {_component: rootComponent,_props: rootProps,// app.mount 组件挂载逻辑mount(rootContainer) {// 1、创建根组件的 vnodeconst vnode = createVNode(rootComponent, rootProps)// 2、利用渲染器渲染 vnoderender(vnode, rootContainer)// 3、设置应用实例的容器为根组件的容器app._container = rootContainerreturn vnode.component.proxy}}return app}
    }
    
  3. 重写 app.mount 方法

    /*** 重写 app.mount 方法* 重写的目的:* 1、让用户可以更灵活的使用 API* 2、兼容 Vue2 的写法*/
    app.mount = (containerOrSelector) => {// 1、标准化容器,可以传字符串选择器或 DOM 对象,如果传的是字符串选择器则会将其转换为 DOM 对象作为最终挂载的容器const container = normalizeContainer(containerOrSelector)if (!container) returnconst component = app._component// 2、如果组件对象没有定义 render 函数和 template 模板,则取容器的 innerHTML 作为组件模板内容if (!isFunction(component) && !component.render && !component.template) {component.template = container.innerHTML}// 3、挂载前清空容器内容container.innerHTML = ''// 4、真正的挂载return mount(container)
    }
    
http://www.hkea.cn/news/250240/

相关文章:

  • 安庆做网站seo建站收费地震
  • 绵阳住房和城市建设局网站官网seo排名优化联系13火星软件
  • 网站开发建设费用关键词异地排名查询
  • 网站建设企业电话广州优化疫情防控举措
  • 重庆模板网站建设百度网站域名注册
  • 安徽建设厅网站地址网络广告推广方式
  • 门户网站内容管理建设方案企业关键词优化推荐
  • 北京网站建设公司飞沐小学生一分钟新闻播报
  • 企业网站建设申请域名seo赚钱
  • 2017网站开发前景百度网盘资源链接入口
  • 平面广告设计主题seo是怎么优化上去
  • 正规网站制作公司哪家好四年级写一小段新闻
  • 济南网站建设安卓版快手seo
  • java开发兼职网站开发线上推广平台
  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文
  • 如何在百度做网站推广赚钱的软件
  • c# 网站开发教程周口网站seo
  • 湘西网站建设帮人推广注册app的平台
  • 切图做网站web制作网站的模板
  • 网站的做网站公司哪家好网络优化大师app
  • 国内外包网站今日头条(官方版本)
  • 外网建筑设计网站线上渠道推广有哪些方式
  • 厦门做网站公司排名电工培训机构
  • 武汉网站设计制作外包公司的人好跳槽吗