Vue3中调用高德地图选点功能
在项目中有需求为:在地图上选点 获取选中点位的坐标,所以选用了高德地图的api。在网上找了很久发现大多案例都是vue2中 通过CDN的方式引用的,根据官方文档的建议,为了更好的契合 Vue 使用我选用的是通过npm包安装的方式(vue3 + tsx)。
安装
1npm i @amap/amap-jsapi-loader --save
新建文件MapContainer.tsx
基本HTML结构
1234567891011121314151617181920import { defineComponent } from 'vue';// 引入插件import AMapLoader from '@amap/amap-jsapi-loader';export default defineComponent({ setup() { return () => ( <> {/*挂载地图的容器*/} <div id={ ...
ant select 通过onSearch获取的数据没有更新
ant design a-select 数据源更新,但视图没更新的问题 在使用a-select时,发现通过onSearch事件从后端获取到的数据已经更新到了数据源,但是页面上没有任何反应,第一反应是响应式丢失了,然后从控制台输出出来发现并不是数据的问题。
最后看文档示例时发现,select的filterOption属性默认为true…等于说组件在接受到我的数据后又过滤了一遍,这才导致前面看到的数据源更新,视图无变化的问题,把filterOption改为false或者是定义一个filter方法就行了。
TS入门
TS声明数据
普通数据类型
12345678910111213141516171819202122// 布尔值let bool:boolean = falsebool = 1 // 不能将类型“number”分配给类型“boolean”。ts(2322)// Numberlet isNaN: number = NaNisNaN = 666// String let str:string = 'string'let u: void = undefined; // undefined 相反,void不能赋值给undefined// void 常用于表示函数是否有返回值// undefined和null可以赋值给任意类型// 联合类型let str:string | number = 'string' // 可以选择多种类型 使用 | 分隔str = 666// 在vue3中 let str = ref<string>('str')// 其他同上
任意值
123456789let data // 只声明 未赋值,此时可以 ...
Vue3的新特性
Vue3与Vue2的区别
setup
setup会在created之前就执行,所以是不能取到当前实例的
数据的定义不需要通过data 返回一个对象的方法了
1234567891011121314151617181920<script>import { ref,computed } from "vue"export default { data(){ // vue2写法 return { flag: false } }, setup() { // 等于以上vue2的写法 // 要import ref const flag = ref(false) // 其实构建的是个对象 // 必须要return出去 否则模板里取不到 return { flag } }}</script>
如果不是用ref创建的变量是不支持响应式的
定义方法 也不需要met ...
自定义滚动条
mCustomScrollbar自定义滚动条引入插件1<script src="xxx/xxx/jquery.mCustomScrollbar.js"></script>
初始化
在ejs模板里面,通过js初始化;
以下示例在合同系统查看,文件路径views\common\contractLayout.ejs
12345678910111213141516171819202122232425262728293031<script> (function(){ $(window).load(function(){ $('.mCustomScrollbar').mCustomScrollbar({ scrollButtons: { enable: true, }, callbacks: { ...
select2可远程下拉框
select2可远程下拉框
引入
12<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.8/css/select2.min.css" rel="stylesheet" /><script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.8/js/select2.min.js"></script>
初始化(两种)
已有select option标签
12345678910var _html = '<option value="">--请选择--</option>';var _persons = ((_dataResult || [])[0] || {}).contacts || [];var _value = '';for (var i = 0; i ...