在html文件中调用vue组件,vue创建组件的三种方式

  在html文件中调用vue组件,vue创建组件的三种方式

  本文主要介绍了在html中创建和调用vue组件的几种方法的总结,帮助大家更好的理解和使用vue框架。感兴趣的朋友可以了解一下。

  作者:Echoyya

  资料来源:https://www.cnblogs.com/echoyya/

  最近写项目的时候总会遇到在html中使用vue.js的情况,页面逻辑很多。以前的项目经验都是关于使用现有的项目架构,比如脚手架,使用。vue文件来完成组价注册,以及组件之间的调用。我没有在html中创建组件的经验,所以想借此机会学习和总结一下。

  方法一:Vue.extend( options )

  用法:使用基本的Vue构造函数创建一个“子类”。参数是包含组件选项的对象。数据选项是一个特例,需要注意——它必须是Vue.extend()中的一个函数

  Extend创建的是Vue构造函数,而不是我们通常编写的组件实例,所以不能通过new Vue({ components: testExtend})直接使用,需要通过new Profile()挂载到指定的元素上。$mount(选择器选择器)。

  Vue .扩展虚拟机。$mount组合

  //借用官网的例子,稍微改动一下。

  //在父组件中,创建一个子组件并调用

  div id=应用程序

  按钮{ {邮件} }/按钮

  div id=装载点/div

  /div

  script src= https://cdn . jsdelivr . net/NPM/vue/dist/vue . js /script

  脚本类型=文本/javascript

  var vm=new Vue({

  埃尔: #app ,

  数据:{

  消息:“父组件”

  },

  });

  //创建构造函数

  var Profile=Vue.extend({

  模板: p { {名字} } { {姓氏} } { {别名}}/p ,

  数据:函数(){

  返回{

  名字: N ,

  姓氏: H ,

  别名:“Y”

  }

  }

  })

  //创建一个配置文件实例,并将其安装在一个元素上。

  新建个人资料()。$ mount(# mount-point)

  /脚本

  方法二:Vue.component( id, [definition] ) + Vue.extend( options )

  用法:Vue.component()注册或获取全局组件。注册还会自动设置具有给定id的组件的名称。

  div id=应用程序

  !-如果你想使用一个组件,直接把组件的名字以HTML标签的形式引入页面-

  todo :todo-data=todoList/todo

  /div

  script src= https://cdn . jsdelivr . net/NPM/vue/dist/vue . js /script

  脚本类型=文本/javascript

  //生成子组件

  var todoItem=Vue.extend({

  模板:` li {{ text }} /li `,

  道具:[文本]

  })

  //生成父组件

  var todoWarp=Vue.extend({

  模板:` 1

  保险商实验所

  todo-item v-for=(item,index)in todo data v-text= item . text /todo-item

  /ul

  `,

  道具:[todoData],

  //在本地注册子组件

  组件:{

  //使用组件定义组件时,如果组件名是用hump命名的,那么在引用组件时,需要将大写改为小写,并用-连接单词

  托多伊特姆:托多伊特姆

  }

  })

  //注册到全局

  Vue.com ponent( todo ,todo warp)//相当于下面的写法。

  Vue.component(todo ,Vue.extend({

  模板:“xxx”,

  道具:[xxx],

  组件:“xxx”

  }))

  新Vue({

  埃尔: #app ,

  数据:{

  todoList: [

  {id: 0,text:工作 },

  {id: 1,text:学习 },

  {id: 2,text:休息 }

  ]

  }

  })

  /脚本

  方法三:直接使用Vue.component()

  div id=应用程序

  mycom/mycom

  /div

  script src= https://cdn . jsdelivr . net/NPM/vue/dist/vue . js /script

  脚本类型=文本/javascript

  Vue.component(mycom ,{

  模板: h3这是用Vue.component创建的组件/h3

  })

  新Vue({

  埃尔: #app

  })

  /脚本

  但是这样写会有一个问题:如果h3标签后面出现另一个标签,就会有问题。

  Vue.component(mycom ,{

  模板: h3这是用Vue.component创建的组件/h3h3这是用Vue.component创建的组件/h3

  })

  原因:组件模板属性指向的模板内容必须只有一个根元素。

  解决方案:使用唯一的div作为父元素,并包装多个子元素。

  方法四:使用Vue.component()

  使用受控#app外部的template元素来定义HTML模板结构。

  div id=应用程序

  mycom/mycom

  /div

  模板id=tem1

  H1是模板元素/h1。

  /模板

  script src= https://cdn . jsdelivr . net/NPM/vue/dist/vue . js /script

  脚本类型=文本/javascript

  Vue.component(mycom ,{

  模板: #tem1

  });

  新Vue({

  埃尔: #app

  })

  /脚本

  方法五:使用Vue.component() + is

  div id=应用程序

  保险商实验所

   li is=todo-item v-for=(todo,index)in todos :title= todo :key= index @ remove= remove todo(index)/Li

  /ul

  /div

  script src= https://cdn . jsdelivr . net/NPM/vue/dist/vue . js /script

  脚本类型=文本/javascript

  Vue.component(todo-item ,{

  模板:` 1

  里

  {{title}}

  button @click=$emit(remove )删除/button

  /李

  `,

  道具:[标题]

  })

  新Vue({

  埃尔: #app ,

  数据:{

  托多斯:[吃,游泳,阅读]

  },

  方法:{

  removeTodo:函数(索引){

  this.todos.splice(索引,1)

  }

  }

  })

  解释is属性:

  一些HTML元素,如ul、ol、table和select,对可以出现在其中的元素有严格的限制。而有些元素,如li、tr和option,只能出现在特定的元素内部。当我们使用这些约束元素时,这会导致一些问题。例如

  桌子

  博客-帖子-行/博客-帖子-行

  /表格

  这个自定义组件会作为无效内容对外推广,最终渲染结果会是错误的。幸运的是,这个特殊的is属性为我们提供了一个解决方法:

  桌子

  tr是=blog-post-row/tr

  /表格

  以上是在html中创建和调用vue组件的几种方法的详细内容。关于在html中创建和调用vue组件的更多信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: