视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Vue中占位符如何使用
2020-11-27 19:55:48 责编:小采
文档

这次给大家带来Vue中占位符如何使用,Vue中占位符使用的注意事项有哪些,下面就是实战案例,一起来看一下。

简单来说就是占位符,它会帮你占好位置,等你需要的时候直接将html传入,它会帮你显示出来。

也有人说:props可以将数据从父组件传入子组件,slot可以将html从父组件传入子组件。那么如何实现呢?

单个插槽:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <script type="text/javascript" src="vue.min.js"></script>
 </head>
 <body>
 <p id="app">
 <h1>我是父组件的标题</h1>
 <my-component>
 <p>这是一些初始内容</p>
 <p>这是更多的初始内容</p>
 </my-component>
 </p>
 <script type="text/javascript">
 Vue.component('my-component', {
 // 有效,因为是在正确的作用域内
 template: '<p>\
 <h2>我是子组件的标题</h2>\
 <slot>只有在没有要分发的内容时才会显示。</slot>\
 </p>',
 data: function () {
 return {
 
 }
 }
 });
 new Vue({
 el:'#app',
 data:{
 msg:'你好啊'
 }
 })
 </script>
 </body>
</html>

组件中的模板中写入slot标签,在父级调用子组件的时候传入html即可。

具名插槽:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <script type="text/javascript" src="vue.min.js"></script>
 </head>
 <body>
 <p id="app">
 <my-component>
 <h1 slot="header">这里可能是一个页面标题</h1>
 <p>主要内容的一个段落。</p>
 <p>另一个主要段落。</p>
 <p slot="footer">这里有一些联系信息</p>
 </my-component>
 </p>
 <script type="text/javascript">
 Vue.component('my-component', {
 // 有效,因为是在正确的作用域内
 template: '<p class="container">\
 <header>\
 <slot name="header"></slot>\
 </header>\
 <main>\
 <slot></slot>\
 </main>\
 <footer>\
 <slot name="footer"></slot>\
 </footer>\
 </p>',
 data: function () {
 return {
 
 }
 }
 });
 new Vue({
 el:'#app',
 data:{
 msg:'你好啊'
 }
 })
 </script>
 </body>
</html>

具名插槽,顾名思义当有多个slot标签时,你需要给他们起个自己的名字,在父组件调用时需要slot="内部的对应名字",当存在没有命名的slot标签时,父级组件传入的默认html代码将全部输出在无名的slot标签中。

作用域插槽

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <script type="text/javascript" src="vue.min.js"></script>
 </head>
 <body>
 <p id="app">
 <!-- 在父级中,具有特殊特性 slot-scope 的 <template> 元素必须存在,表示它是作用域插槽的模板。slot-scope 的值将被用作一个临时变量名,此变量接收从子组件传递过来的 prop 对象: -->
 <child>
 <template scope="props">
 <span>hello from parent</span><br>
 <span>{{ props.text }}</span>
 </template>
 </child>
 </p>
 <script type="text/javascript">
 // 在子组件中,只需将数据传递到插槽,就像你将 prop 传递给组件一样:
 Vue.component('child',{
 template:'<ul>' +
 '<slot text="hello from child"></slot>' +
 '</ul>',
 data:function(){
 return {
 }
 },
 });
 new Vue({
 el:'#app',
 data:{
 msg:'你好啊'
 }
 })
 </script>
 </body>
</html>

作用域插槽是一种特殊类型的插槽,用作一个 (能被传递数据的) 可重用模板,来代替已经渲染好的元素。

其实就是相当于,在父组件中可以获取到子组件传递出来的props对象,从而渲染到父组件上。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Element-ui如何操作table来变更表格内容

源生JS怎样实现todolist功能

下载本文
显示全文
专题