如何在vue中使用ts】的更多相关文章

注意:此文并不是把vue改为全部替换为ts,而是可以在原来的项目中植入ts文件,目前只是实践阶段,向ts转化过程中的过渡. ts有什么用? 类型检查.直接编译到原生js.引入新的语法糖 为什么用ts? TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序.另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程. typescript不仅可以约束我们的编码习惯,还能起到注释的作用,当我们看到一函数后我们立马就能知道这…
1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到相同模块(或者插件).我们不想每个文件都import 一次模块. 如果是基于vue.js编写的插件我们可以用 Vue.use(...) main.js 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚…
1.安装依赖 npm install svg-sprite-loader --save-dev 2.在config文件中配置    const path = require('path'); function resolve(dir) { return path.join(__dirname, dir) } chainWebpack(config) { // set svg-sprite-loader config.module .rule('svg') .exclude.add(resolve…
vue中修改动态标签中的样式和修改组件库样式 因为vue中的标签在渲染的时候,都会给标签加上id 所以你想在<style lang="scss" scoped>直接修改样式是修改不了的 全局中直接修改也会造成样式污染的 所以我们可以先在html标签外面加上一个命名空间,也就是外层元素加上一个id 然后在进行修改动态元素或者组件库的样式 案例:…
1. 什么是防抖节流 防抖:防止重复点击触发事件 首先啥是抖? 抖就是一哆嗦!原本点一下,现在点了3下!不知道老铁脑子是不是很有画面感!哈哈哈哈哈哈 典型应用就是防止用户多次重复点击请求数据. 代码实现要点:设置一个定时器,通过闭包,抓住定时器变量,控制定时器的添加和清除 直接上代码 function debounce(fn, time) { let _arguments = arguments let timeout = null return function () { if (timeou…
使用sass,我们需要安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于node-sass npm install --save-dev node-sass 修改style标签 打开目录中的xxx.vue文件.然后修改 style标签如下 <style lang="sass"> 如果出现错误提示:无效的css.因为sass语法不使用大括号和分号.如果你喜欢使用不带大括号的语法,只要去掉css代码的大括…
1..修改webpack.base.conf.js 文件中添加'/static': resolve('static'),如下所示,此时存放于static的json文件就可以通过/static/xxx.json访问到了 在resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/vue.esm.js', '/src': resolve('src'), '/libs': path.resolve(__dir…
之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github上就实现不了我们期望的效果了:后来发现 mockjs 这个插件就满足这一需求.研究了半天,感觉 mockjs 模拟数据更强大,通过随机数据,可以模拟各种场景,下面一步步的来实现在 vue-cli创建的项目中添加一条用户信息的数据模拟接口: 安装 mockjs 在vue项目安装mockjs npm i…
1.安装echarts依赖   npm install echarts --save 2.在main.js中全局中引用 import echarts from 'echarts' Vue.prototype.$echarts = echarts 3.在你需要用到echart的地方先设置一个div的id.宽高, 例子: <div id="chart-part1" style="width:100%;height:376px"></div> 然后…
前言:在leaflet的官方文档只有静态的HTML演示并没有结合VUE的demo  虽然也有一些封装好的leaflet库例如Vue-Leaflet,但是总感觉用起来不是那么顺手,有些业务操作还是得用leaflet的API好用 步骤1:npm install leaflet  (搭建vue项目就跳过了) 页面中先下载好npm包  下一步就是在vue用引用了(以下方法都是网上教程自己整理出来的) Main.js (也可以在入口的 .vue 页面) import L from "leaflet&quo…
当我们在Vue.js项目中引用图片时,关于图片路径有以下几种情形: 使用一. 我们在data里面定义好图片路径 imgUrl:'../assets/logo.png' 然后,在template模板里面 <img :src="imgUrl"> /*或者*/ <img src="../assets/logo.png"> 这种方式是按照正常HTML语法引用路径,放在模板里可以被webpack打包出来. 使用二. 当我们需要在js代码里面写图片路径的…
前言 在一个项目中,一些功能会涉及到重要的数据管理,为了确保数据的安全,我们会在项目中加入权限来限制每个用户的操作.作为前端,我们要做的是配合后端给到的权限数据,做页面上的各种各样的限制. 需求 因为这是一个工作上的业务需求,所以对于我来说主要有两个地方需要进行权限控制. 第一个是侧边菜单栏,需要控制显示与隐藏. 第二个就是页面内的各个按钮,弹窗等. 流程 如何获取用户权限? 后端(当前用户拥有的权限列表)-> 前端(通过后端的接口获取到,下文中我们把当前用户的权限列表叫做 permission…
方法一 // mixins.ts import { Vue } from "vue-property-decorator"; export class TableSelect extends Vue { selected: Array<any> = []; tableChange(val: Array<any>) { this.selected = val; } } // pagea.vue import { Component } from "vue…
首先需要明确3个定义: 文档高度:整个页面的高度 可视窗口高度:你看到的浏览器可视屏幕高度 滚动条滚动高度: 滚动条下滑过的高度 当 文档高度 = 可视窗口高度 + 滚动条高度  时,滚动条正好到底. 首先在mounted中添加监听:window.addEventListener('scroll', this.scrollFn);   // 监听scroll 然后创建3个函数分别获取文档高度.可视窗口高度.滚动条高度: //文档高度 getScrollTop(){ var scrollTop =…
第一步 创建点击对象页面元素,并绑定业务数据. <el-button type="text" size="mini" class="copy-button" :data-resource-type="scope.data.resource_type" :data-resource-id="scope.data.resource_id"> 复制链接 </el-button> 第二步 引…
一.问题产生背景: 子组件的一个方法: update () { this.$nextTick(() => { this.ul_slots.forEach((ul, cur_slots_index) => { if (ul.getAttribute("class").indexOf("select_slots") < 0) { return; } let liHeight = ul.children[0].offsetHeight ul.style.…
1.项目根目录下下载百度地图插件 npm install vue-baidu-map –save 2.在首页index.html中引入百度地图: <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=秘钥"></script> 我申请的密钥为  :3bVHdeo2ZZaZO4QczC63d0kMsbA55ZSD 3.在显示地图的组件中 template…
不知道各位小伙伴有没有在开发遇到一个问题,就是在线上的项目使用后台返回本地图片路径,然后加载不上的情况呢? 我的解决方法就是:先在项目的data下定义好这样一个数组用于存放需要加载的路径 [ {name:"张山" url:require(./img/zhangshan.png)} , {name:"李四" url:require(./img/zhangshan.png)} , {name:"老王" url:require(./img/zhangs…
新建 一个公共的stylus公共文件添加公共变量,如下: 修改下图圈出的文件: 具体的修改如下: // generate loader string to be used with extract text plugin function generateLoaders (loader, loaderOptions) { const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] if (loader…
介绍 当鼠标hover 上元素时,给元素加一层遮罩层. 效果图 使用 import VueHoverMask from 'vue-hover-mask' export default { components: { VueHoverMask } } 示例 <template> <div id="app"> <vue-hover-mask @click="handleClick"> <!-- 默认插槽 --> <i…
最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好.后面会在学习过程中更新前面的那篇文章,加入后续遇到的问题以及解决问题的方法,持续的做一个记录. 好了,废话不多说,咱们开始今天的内容吧.因为之前使用jest时候的项目是移植过来的项目,因为复杂的环境以及外部文件引入的等等等等的问题.采用的方式就是新建一个空的vue-cli生成的用jest来做单元测试的项目,这就导致了测试环境的配置是极为脆…
[本文出自天外归云的博客园] 需求 1. Vue中使用ECharts画散点图 2. 在图中加入加均值线 3. 在图中标注出阴影区域 实现 实现这个需求,要明确两点: 1. 知道如何在vue中使用echarts 2. 要知道如何在echarts散点图中画均值线和阴影区域 在下面的代码option对象的series属性中用到了markLine和markArea,标注最值用到了markPoint. 所以去官方文档搜索标线.标点.标图的关键字要搜mark. 如何在vue中使用echarts见文末. 需要…
什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll 也很强大,不仅可以做普通的滚动列表,还可以做轮播图.picker 等等. better-scroll 的滚动原理 不少同学可能用过 better-scroll,我收到反馈最多的问题是: 我的 better-scroll 初始化了, 但是没法滚动. 不能滚动是现象,我们得搞清楚这其中的根本原因.在这之前,我…
在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开“微信 —> 钱包—>滴滴出行”体验效果. 我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll. 什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll 也很强大,不仅可以…
最近用vue写一个电商项目,自然就少不了要写一个购物车的相关页面,功能完整的购物车的checkbox应该是三级联动的,1级checkbox是选中购物车中所有的商品,2级checkbox是选中某个店铺下的所有商品,3级checkbox是选中单个商品,如下图: 那么,如何在vue中如何实现三级联动呢? 主要思路分为以下3步: 1.首先在购物车中的每条商品信息里(在data中定义shops>>products>>isSelected),包含一个isSelected的布尔值属性,表示单个商…
一.前言 前端路由是什么?如果你之前从事的是后端的工作,或者虽然有接触前端,但是并没有使用到单页面应用的话,这个概念对你来说还是会很陌生的.那么,为什么会在单页面应用中存在这么一个概念,以及,前端路由与我们后端的路由有什么异同呢.本章,我们就来简单介绍下前端路由的概念,以及如何在 Vue 中使用 Vue Router 来实现我们的前端路由. 学习系列目录地址:https://www.cnblogs.com/danvic712/p/9549100.html 仓储地址:https://github.…
前言 恕我直言,用 Typescript 写 Vue 真的很难受,Vue 对 ts 的支持一般,如非万不得已还是别在 Vue 里边用吧,不过听说 Vue3 会增强对 ts 的支持,正式登场之前还是期待一下吧嘻嘻. 本篇不会过多讲述 ts 语法,着重记录下 在 Vue 中使用 ts 的方法以及踩坑经过. 如果是使用 Vue Cli2 搭建的项目,要注意 webpack 版本可能与 ts-loader 版本不匹配,可以降低 ts-loader 版本到 3.0+ 或者 将 webpack升级到 4.0…
0.前言 本快速入门指南将会教你如何在Vue项目中使用TypeScript进行开发.本指南非常灵活,它可以将TypeScript集成到现有的Vue项目中任何一个阶段. 1.初始化项目 首先,创建一个新的项目目录. mkdir typescript-vue-tutorial cd typescript-vue-tutorial 接着,在目录中创建如下目录结构. typescript-vue-tutorial/ ├─ dist/ └─ src/ └─ components/ TypeScript文件…
如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.org/docs/user-guide/configuring module.exports = { //此项是用来告诉eslint找当前配置文件不能往父级查找 root: true, //此项是用来指定eslint解析器的,解析器必须符合规则,babel-eslint解析器是对babel解析器的包装使…
一.创建并引入一个组件 1.创建组件 vue-cli中的所有组件都是存放在components文件夹下面的,所以在components文件夹下面创建一个名为First.vue的自定义组件: <template> <div> <h1>{{msg}}</h1> </div> </template> <script> // 1.export 表示导出,在自定义组件里面使用export default导出 export defau…