vue动态选择组件

有时候会用到同一位置因为条件不同而使用不同组件,vue中可以用 :is

 1 <template>
 2   <div class="RuleContent">
 3     <el-container>
 4       <el-header>{{benginLable}}</el-header>
 5       <el-main>
 6         <component :is="ruleMsg" :id="treeid" :parentid="parentid" :benginLable="benginLable" @save_tree_item_msg="saveTreeItemMsg"></component>
 7       </el-main>
 8     </el-container>
 9   </div>
10 </template>
11
12 <script lang="ts">
13 import { Component, Prop, Vue, Emit, Model, Watch } from ‘vue-property-decorator‘
14 import axios from ‘axios‘
15 import RuleName from ‘@/components/RuleName.vue‘
16 import Rule from ‘@/components/Rule.vue‘
17 import RuleDet from ‘@/components/RuleDet.vue‘
18 import baseUrl from ‘@/api/baseUrl.ts‘
19 @Component({
20   components: {
21     RuleName,
22     Rule,
23     RuleDet
24   }
25 })
26 export default class RuleContent extends Vue {
27   ruleMsg= ‘‘
28   @Prop() type!: number
29   @Prop() treeid!: number
30   @Prop() parentid!: number
31   @Prop() benginLable!: string
32
33   tableData: String[] = []
34   @Watch(‘type‘)
35   typeChange (newValue: number, oldValue: number) {
36     if (oldValue !== newValue) {
37       switch (newValue) {
38         case 1:
39           this.ruleMsg = ‘RuleName‘
40           break
41         case 2:
42           this.ruleMsg = ‘RuleDet‘
43           break
44         case 3:
45           this.ruleMsg = ‘Rule‘
46           break
47         default:
48           break
49       }
50     }
51   }
52   saveTreeItemMsg (data:string, id:number) {
53     this.$emit(‘save_tree_item‘, data, id)
54   }
55
56 }
57 </script>

原文地址:https://www.cnblogs.com/wangbob/p/12160738.html

时间: 2024-10-10 07:02:44

vue动态选择组件的相关文章

vue城市选择组件

适用于vue的城市选择组件 仓库地址 基本功能: 支持全选.反选以及全部清空. 支持按拼音筛选. 勾选省份将会勾选省份下所有城市. 返回数据可灵活处理. 安装 npm install cn-region-picker # 或者 yarn add cn-region-picker 用法 组件引入: // import包 import CnRegionPicker from 'cn-region-picker' // use Vue.use(CnRegionPicker) 使用: v-model="

【Html】Vue动态插入组件

html: <div id="app"> <p>{{ message }}</p> <button @click="add('a-component', '我是A')">添加A组件</button> <button @click="add('b-component', '我是B')">添加B组件</button> <component :is="i

vue动态切换组件

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="app"> <a href="#" @click.prevent="cname='login'">登录</a> &

Vue动态加载异步组件

背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,iframe存在跨域的问题,当然是postMessage还是可以通信的,但也并非是最好的.目前有这么一个场景:门户需要制作通用的首页和数据概览页面,首页和数据概览页面通过小部件来自由拼接.业务组件在制作的时候只需要提供各个模块小部件的url就可以了,可是如果小部件之间还存在联系呢?那么iframe是不好

Vue动态组件

前面的话 让多个组件使用同一个挂载点,并动态切换,这就是动态组件.本文将详细介绍Vue动态组件 概述 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以实现动态组件 <div id="example"> <button @click="change">切换页面</button> <component :is="currentView"></compon

vue仿京东省市区三级联动选择组件

工作中需要一个盒京东购物车地址选择相似的一个省市区三级联动选择组件,google查了下都是下拉框形式的,于是自己写了一个,希望对使用vue开发项目的朋友有帮助,显示效果如下:使用vue2.0开发 html代码如下 <!--居住地址三级联动选项--> <section class="showChose" v-show="showChose"> <section class="address"> <secti

vue动态生成表单组件vue-generate-form

项目地址 简介 Vue动态生成表单组件 可以根据数据配置表单 使用的UI库是iView 在Vue里 一般要用到什么组件或数据 都得提前声明 所以要根据数据来生成表单 只能使用Vue的render函数 要做这一个组件 其实并不难 看一下Vue官方示例 再找个UI组件库 差不多就能写出来 如果对项目有兴趣 可以fork或克隆项目 自行研究 有问题或BUG欢迎提issues 文档 在线DEMO 表单组件 Input 输入框 Button 按钮 Radio 单选框 Checkbox 多选框 Icon 图

vue仿淘宝地址选择组件

Vue组件:省市区地址选择组件 <template> <div v-show="addressSelectShow" :style="{'left': leftValue + 'px', 'top': topValue + 'px' }" class="content"> <ul class="area-select"> <li v-for="(item, index) in

vue 动态获取路由在对组件进行处理是报错,导致无法进入页面

vue 动态获取路由在对组件进行处理是报错,导致无法进入页面function filterAsyncRouter(asyncRouterMap) { //遍历后台传来的路由字符串,转换为组件对象const accessedRouters = asyncRouterMap.filter(route => { if (route.component) { if (route.component === 'Layout') {//Layout组件特殊处理 route.component = Layou