v-html渲染组件问题

 更新时间:2021年05月30日 14:47:03   作者:huliten  
最近在学习vue,今天正好发现个问题,本文介绍了v-html渲染组件问题,整理了问题的解决方法,有需要的小伙伴可以参考下

由于前面对html进行过解析,今天想用vue拖拽,实现一手类似快站那种自动生成代码,结果就遇到了拖拽组件过去怎么无法解析的问题,因为vue的v-html为了防止xss攻击只能解析html

思路

 先实现简单页面 分三块左中右,左边是需要拖动的组件,中间是用于组件排列显示,右边是解析出的代码

左边组件列表代码

  <div ref="test" >
    <one-component :title="title[0]" element="<el-radio v-model='radio' label='1'>备选项</el-radio>"> 
      <el-radio slot="component" v-model="radio" label="1">备选项</el-radio>
    </one-component>
  </div>
</template>

<script>
import OneComponent from '../components/oneComponent'
export default {
  name: '',
  data() {
    return {
        radio: '2',
        title: ['Radio 单选框']
    }
  },
  components:{
    OneComponent
  },
 

}
</script>

<style lang="stylus" scoped>
</style>

中间组件显示代码

  <div class="all">
    <el-form label-width="80px" label-position="left" :model="ruleForm" :rules="rules">
      <el-form-item label="模拟宽" prop="inputW">
        <el-input v-model="ruleForm.inputW" placeholder="请输入宽"></el-input>
      </el-form-item>
      <el-form-item label="模拟高" prop="inputH">
        <el-input v-model="ruleForm.inputH" placeholder="请输入高"></el-input>
      </el-form-item>
    </el-form>
    <Variablebox
      class="box"
      :width="ruleForm.inputW"
      :height="ruleForm.inputH"
    ></Variablebox>
  </div>
</template>
<script>
import Variablebox from "../components/Variablebox";
export default {
  name: "",
  data() {
    var checkSize = (rule, value, callback) => {
      console.log(value);
      if (value < 500 || value > 1000) {
        callback(new Error("建议500 ~ 1000内的数字"));
      } else if (!Number.isInteger(Number(value))) {
        callback(new Error("请输入数字值"));
      } else {
        callback();
      }
    };
    return {


      ruleForm: {
        inputW: 500,
        inputH: 500
      },

      rules: {
        inputW: [{ validator: checkSize, trigger: "blur" }],
        inputH: [{ validator: checkSize, trigger: "blur" }]
      }
    };
  },
  methods: {
  },
  components: {
    Variablebox
  }
};
</script>
<style lang="stylus" scoped>
.all
  padding: 0 20px
  display: flex
  flex-direction: column
</style>

接下来实现组件的拖拽使用drag和drop 将组件显示在Variablebox页面上,使用v-html无效后,百度了一下,发现基本上叫使用vue.Vue.compile( template ) 和render但是没给例子

compile是将一个模板字符串编译成 render 函数,就是最后
都是render调用createElement,转化成html,但是我们我们是直接渲染
</el-radio slot="component" v-model="radio" label="1"/>
所以个人
感觉行不通,最后只能尝试新建组件然后挂载上去

   new Vue({
        // el: ‘#app'
        template: this.ele,
         data:{
           radio: '2'
        },
      }).$mount("#apps");

这样算是暂时决解掉这个问题吧

vue中运用v-html渲染标签

获取后台数据带 标签 内容,需要渲染到页面展示。最终效果如下:图文排版

1.首先拿到数据,单独处理

2.接着在html中输出即可

相关文章

  • vue2.0多条件搜索组件使用详解

    vue2.0多条件搜索组件使用详解

    这篇文章主要为大家详细介绍了vue2.0多条件搜索组件的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 对Vue.js之事件的绑定(v-on: 或者 @ )详解

    对Vue.js之事件的绑定(v-on: 或者 @ )详解

    今天小编就为大家分享一篇对Vue.js之事件的绑定(v-on: 或者 @ )详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 给vue项目添加ESLint的详细步骤

    给vue项目添加ESLint的详细步骤

    本篇文章主要介绍了给vue项目添加ESLint的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue之文件加载执行全流程

    Vue之文件加载执行全流程

    这篇文章主要介绍了Vue之文件加载执行全流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue实现摇一摇功能(兼容ios13.3以上)

    Vue实现摇一摇功能(兼容ios13.3以上)

    这篇文章主要为大家详细介绍了Vue实现摇一摇功能,兼容ios13.3以上,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 分享9个Vue的巧妙冷技巧

    分享9个Vue的巧妙冷技巧

    这篇文章主要介绍了分享9个Vue的巧妙冷技巧,文章首先通过巧用$attrs和$listeners的技巧展开,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • vue弹窗组件的实现示例代码

    vue弹窗组件的实现示例代码

    这篇文章主要介绍了vue弹窗组件的实现示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vuex存储数组(新建,增,删,更新)并存入localstorage定时删除功能实现

    vuex存储数组(新建,增,删,更新)并存入localstorage定时删除功能实现

    这篇文章主要介绍了vuex存储数组(新建,增,删,更新),并存入localstorage定时删除,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • element-ui 关于获取select 的label值方法

    element-ui 关于获取select 的label值方法

    今天小编就为大家分享一篇element-ui 关于获取select 的label值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue实现气泡运动撞击效果

    vue实现气泡运动撞击效果

    这篇文章主要为大家详细介绍了vue实现气泡运动撞击效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论