低代码开发 | 青训营笔记

101 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

如何表示不同组件间的位置

用json脚本表示,

需要配置ts对json的支持,所以在

tsconfig.json里面,将compilerOptions的配置项里面添加下面这两个配置项

 "compilerOptions": {
     。。。。。。。
     "resolveJsonModule": true,
     "esModuleInterop": true
   },

在ts文件里面引入ts组件,会遇到报错

 TS2691: An import path cannot end with a '.tsx' extension. Consider importing '@/layout/Layout.js' instead.

但是可以在每一行引入的地方加入

 // @ts-ignore

来消除影响bobbyhadz.com/blog/typesc…

各种参数表示组件的位置

 {
     //画布的大小
   "container": {
     "width": 1280,
     "height": 1024
   },
     //组件中的物体的位置
   "blocks":[
     {"top": 100,"left": 100,"zIndex": 1,"key": "text"},
     {"top": 200,"left": 200,"zIndex": 1,"key": "button"},
     {"top": 300,"left": 300,"zIndex": 1,"key": "input"}
   ]
 }

拖拽编辑器创建

在Vue文件中动态插入html模板

v-html插值

Vue.component方法创建组件,在对应地方展示组件

在对应组件中导入Vue -> 利用Vue.component("name", {template: <div>...</div>})创建组件 -> 在想要展示的地方插入组件

    <a-modal
       ref="basinModal"
       v-model="basinVisible"
       ok-text="确认"
       @ok="hideModal"
       :width="640"
     >
       <basinModal></basinModal>
     </a-modal>
     
     <script>
     import Vue from "vue";
     import PubSub from "pubsub-js";
     
     export default {
       mounted() {
         PubSub.subscribe("showBasinModal", (msg, template) => {
           Vue.component("basinModal", {
             template: `<div>${template}</div>`,
           })
           this.basinVisible = true;
         });
       }
     }
     </script>

others

在js中定义变量,然后在template中直接使用

 <div :style=containerStyles></div>

div 用:绑定,这样可以读取script里面的变量,

 const containerStyles = computed(() => ({
   width: ExampleProps.data.container.width + 'px',
   height: ExampleProps.data.container.height + 'px',
   margin: "0 auto",
 }))

calc使用

是css里面的方法,可以不同的单位之间进行计算,但是要:

 height:calc(100vh - 100px);

减号两边必须必须有空格!

这个的作用是获得当前视口的高度,然后减去100px(页面的头部)

overflow:auto

这个是对于父一级的组件使用的,子物体超出边界会有滑动的窗口

vue-router传值

和正常的组件间的传值是一样的,vue-router显示的是哪个页面就由哪个页面显示值

\