13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

创新互联VUE3教程:Vue3.0自定义元素交互

#概览

创新互联建站云计算的互联网服务提供商,拥有超过13年的服务器租用、多线服务器托管、云服务器、虚拟主机、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、虚拟主机域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。

#自主定制元素

如果我们想添加在 Vue 外部定义的自定义元素 (例如使用 Web 组件 API),我们需要“指示”Vue 将其视为自定义元素。让我们以下面的模板为例。

#2.x 语法

在 Vue 2.x 中,将标记作为自定义元素白名单是通过 Vue.config.ignoredElements

// 这将使Vue忽略在Vue外部定义的自定义元素
// (例如:使用 Web Components API)


Vue.config.ignoredElements = ['plastic-button']

#3.x 语法

在 Vue 3.0 中,此检查在模板编译期间执行指示编译器将 视为自定义元素:

  // webpack 中的配置
  rules: [
    {
      test: /\.vue$/,
      use: 'vue-loader',
      options: {
        compilerOptions: {
          isCustomElement: tag => tag === 'plastic-button'
        }
      }
    }
    // ...
  ]

  const app = Vue.createApp({})
  app.config.isCustomElement = tag => tag === 'plastic-button'

需要注意的是,运行时配置只会影响运行时模板编译——它不会影响预编译的模板。

#定制内置元素

自定义元素规范提供了一种将自定义元素用作自定义内置模板的方法,方法是向内置元素添加 is 属性:

Vue 对 is 特殊 prop 的使用是在模拟 native attribute 在浏览器中普遍可用之前的作用。但是,在 2.x 中,它被解释为渲染一个名为 plastic-button 的 Vue 组件,这将阻止上面提到的自定义内置元素的原生使用。

在 3.0 中,我们仅将 Vue 对 is 属性的特殊处理限制到 tag。

  

  

    document.createElement('button', { is: 'plastic-button' })

#v-is 用于 DOM 内模板解析解决方案

提示:本节仅影响直接在页面的 HTML 中写入 Vue 模板的情况。 在 DOM 模板中使用时,模板受原生 HTML 解析规则的约束。一些 HTML 元素,例如 对它们内部可以出现的元素有限制,和一些像 ,和 只能出现在某些其他元素中。

#2x 语法

在 Vue 2 中,我们建议通过在原生 tag 上使用 is prop 来解决这些限制:

#3.x 语法

随着 is 的行为变化,我们引入了一个新的指令 v-is,用于解决这些情况:

WARNING

v-is 函数像一个动态的 2.x :is 绑定——因此,要按注册名称渲染组件,其值应为 JavaScript 字符串文本:






#迁移策略

  • 替换 config.ignoredElementsvue-loadercompilerOptions (使用 build 步骤) 或 app.config.isCustomElement (使用动态模板编译)
  • 将所有非 tags 与 is 用法更改为 (对于 SFC 模板) 或 v-is (对于 DOM 模板)。

网站题目:创新互联VUE3教程:Vue3.0自定义元素交互
文章网址:http://cdbrznjsb.com/article/ccceshg.html
  • 网站建设专属方案

  • 网站定制化设计

  • 7X24小时服务

  • N对管家服务

让你的专属顾问为你服务