vue

Vue双向数据绑定之原理及实现2

狂风中的少年 提交于 2020-02-26 10:59:58
一、数据代理 我们封装的代码中,进行数据访问是 myVue.data.name ,而实际Vue中的如果要获取数据肯定不需要添加 data 选项即 myVue.name 、 myVue.skill 。 此时就可以通过代理,将data数据选项绑定在Vue对象中,修改时同步到data。 function Vue(options){ this.el = options.el // 元素 this.data = options.data // 数据 this.watcher = {} // 属性、数据、元素 的关联 var self = this Object.keys(this.data).forEach(function(key){ // 遍历所有key self.proxyKeys(key); // 添加代理(data项的处理) self.defineProperty(self.data, key, self.data[key]) }) // 解析DOM this.compile() } Vue.prototype = { proxyKeys(key){ var self = this Object.defineProperty(this, key, { enumerable: false, configurable: true, get(){ return self.data[key

vue cli2.9.6 无法卸载问题

淺唱寂寞╮ 提交于 2020-02-26 10:00:17
卸载一直提示 up to date in 原因是node js 安装时是默认目录 C:\Users\T\AppData\Roaming\npm cdm 把路径切换到 当前安装目录。就可以卸载了 再安装新的 !![](https://img-blog.csdnimg.cn/20200226094551890.png)](https://img-blog.csdnimg.cn OK 来源: CSDN 作者: 帘断折梦 链接: https://blog.csdn.net/qq_45950523/article/details/104510914

vue中将页面导出为.pdf和.html

守給你的承諾、 提交于 2020-02-26 08:33:42
vue中将页面导出为pdf 介绍 导出为.PDF 导出为.html Conclusion 介绍 如果项目中包含报表业务,通常都会有导出功能。根据不同需求导出为不同格式导出,有PDF、Excel、Word格式等…当然,导出的方法也有很多,一般都是后端导出前端直接点击下载即可,但是是不是前端就不能实现导出功能呢,也不是。这里,就在vue项目中使用已有的依赖包来实现导出功能。 导出为.PDF // step 1: 安装所需依赖包 npm i html2canvas jspdf // step 2: import Html2Canvas from 'html2canvas' import JsPdf from 'jspdf' const pageToPdf = ( id , name ) => { Html2Canvas ( document . getElementById ( id ) . getElementsByClassName ( 'el-scrollbar__view' ) [ 0 ] , { allowTaint : true , taintTest : false , height : document . getElementById ( id ) . getElementsByClassName ( 'el-scrollbar__view' ) [ 0 ] .

Vue系列——路由

走远了吗. 提交于 2020-02-26 07:41:27
Vue中的路由 什么是路由 vue里面的特性。和路由器的功能差别,点击一个路由,定位到一个地方; url地址和对应的资源的映射,通过一个路径的url地址,可以唯一找到一个 资源。路由不包含子啊vue中,是一个插件,需要单独下载。 官方地址: link . 使用路由前引入路由 在js中定义路由; < script src = "node_modules/vue-router/dist/vue-router.js" > < / script > idea中要自己去下载路由;在idea中输入: npm install vue-router 路由的使用 demoCode < body > < div id = "app" > < h1 > 路由。。 < / h1 > < p > < ! -- 使用 router - link 组件来导航 . -- > < ! -- 通过传入 `to` 属性指定链接 . -- > < ! -- < router - link > 默认会被渲染成一个 ` < a > ` 标签 -- > < router - link to = "/tt" > 涛涛个人空间 < / router - link > < router - link to = "/ll" > 亮亮的后花园 < / router - link > < router - link to = "/cc"

Vue-给对象新增属性(使用Vue.$set())

你。 提交于 2020-02-26 07:13:06
在开发过程中,我们时常会遇到这样一种情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的。 根据官方文档定义: 如果在实例创建之后添加新的属性到实例上,它不会触发视图更新 。 受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。 看以下实例: 1 <template> 2 <div> 3 <p @click="addd(obj)">{{obj.d}}</p> 4 <p @click="adde(obj)"> {{obj.e}}</p> 5 </div> 6 </template> 7 8 <script> 9 export default { 10 data(){ 11 return { 12 obj:{} 13 } 14 }, 15 mounted() { 16 this.obj = {d: 0}; 17 this.obj.e = 0; 18 console.log('after--', this.obj); 19 }, 20 methods: { 21

Vue $createElement

青春壹個敷衍的年華 提交于 2020-02-26 05:28:28
const h=this.$createElement; h('span', tag, '内容可以是 ') ..... tag完整的数据对象如下: { // 和`v-bind:class`一样的 API 'class': { foo: true, bar: false }, // 和`v-bind:style`一样的 API style: { color: 'red', fontSize: '14px' }, // 正常的 HTML 特性 attrs: { id: 'foo' }, // 组件 props props: { myProp: 'bar' }, // DOM 属性 domProps: { innerHTML: 'baz' }, // 事件监听器基于 "on" // 所以不再支持如 v-on:keyup.enter 修饰器 // 需要手动匹配 keyCode。 on: { click: this.clickHandler }, // 仅对于组件,用于监听原生事件,而不是组件使用 vm.$emit 触发的事件。 nativeOn: { click: this.nativeClickHandler }, // 自定义指令. 注意事项:不能对绑定的旧值设值 // Vue 会为您持续追踨 directives: [{ name: 'my-custom-directive',

vue父组件与子组件的通讯

岁酱吖の 提交于 2020-02-26 05:23:47
Vue父组件主动获取子组件数据以及方法 1.在组件上注册引用信息 ref <item ref="children"></item> 2.在 父组件上调用 this.$ref.children.data      (调用data数据) this.$ref.children.method()    (调用方法) 3.子组件可以使用 $emit 触发父组件的自定义事件 。 例如:子组件: <template> <div class="train-city"> <h3>父组件传给子组件的toCity:{{parentData}}</h3> <button @click='send('100')'>点击此处将'ID'发射给父组件</button> </div> </template> <script> export default { name:'child', props:['parentData'], // 用来接收父组件传给子组件的数据 methods:{ send(id) { this.$emit('sendId',id);//send事件触发后,自动触发sendId事件 } } } </script> 父组件获取子组件事件 <template> <div> <div>父组件的toCity{{send}}</div> <Child @sendId="father" :sendData

向 vue 提交 pr

♀尐吖头ヾ 提交于 2020-02-26 05:14:36
(づ ̄3 ̄)づ╭❤~ 并不是需要你很厉害才能参与开源项目, 可以查看以前的pr, 有的可能只是修改了单词拼写错误, 标点符号, 或者添加测试用例, 也是可以提pr的 我这次也是找到一个小问题, 一个set集合中, 包含了重复值 首先 fork 一份 clone 到本地 git clone https: //github.com/ahaoboy/vue.git 查看 remote 建立与上游关系 git remote add upstream https: //github.com/vuejs/vue.git 创建分支, vue 默认含有 dev 分支 git branch -b dev 修改代码 提交并测试 奇怪的是我这没能完全跑完测试... 可能是windows的问题 o(╥﹏╥)o, 不过还是直接提交了, ci是通过的 npm run commit npm run test 更新到自己的仓库 git fetch upstream git rebase upstream/master git push origin master git commit git push 由于自己是很早之前 fork 的, rebase 时有冲突,所以重新 fork 了一次.... 提交 pr 填写本次提交信息后就可以等待审核通过了 嘻嘻, 等待正式成为 contributor 的时候 (*^▽^*

前端练习——计算器(三)

被刻印的时光 ゝ 提交于 2020-02-26 03:11:52
文章目录 第一部分,使用VUE 1.1 解难题的计划 1.2 用上VUE 上一篇: 计算器二 第一部分,使用VUE 1.1 解难题的计划 因为是才开始接触前端的关系,所以其实没有能力胸有成竹的从零开始完成整个demo,虽然它或许是很简单的demo。也因此,每当考虑到这件事情的时候因为没有胸有成竹,所以就会开始逃避,昨天和今天半天没有做任何工作,也就没有任何提高。 但是,虽然是困难的工作,我其实是可以通过任务分解的办法将它变成" 我可以做到的工作"的。 这样的“超纲”任务在自学的时候会不断出现,解决办法:定下任务的时候就要详细思考怎么处理这个任务,不断分解, 直到自己有信心处理第二天的工作内容后,才算是“定制计划” 。 1.2 用上VUE 第一部分的工作内容是用上 VUE ,在 计算器二 的基础上,把最按键部分、函数部分用vue来完成。 来源: CSDN 作者: Wby_Nju 链接: https://blog.csdn.net/Wby_Nju/article/details/104447810

使用Visual Studio Code编写VUE所使用的插件

耗尽温柔 提交于 2020-02-26 03:01:28
Auto Close Tag 自动闭合HTML标签 Auto Rename Tag 修改HTML标签时,自动修改匹配的标签 Bookmarks 添加行书签 Can I Use HTML5、CSS3、SVG的浏览器兼容性检查 Code Runner 运行选中代码段(支持大量语言,包括Node) CodeBing 在VSCode中弹出浏览器并搜索,可编辑搜索引擎 Color Highlight 颜色值在代码中高亮显示 Color Picker 拾色器 Document This 注释文档生成 EditorConfig for VS Code EditorConfig 插件 Emoji 在代码中输入emoji ESLint ESLint插件,高亮提示 File Peek 根据路径字符串,快速定位到文件 Font-awesome codes for html FontAwesome提示代码段 ftp-sync 同步文件到ftp Git Blame 在状态栏显示当前行的Git信息 Git History(git log) 查看git log GitLens 显示文件最近的commit和作者,显示当前行commit信息 Guides 高亮缩进基准线 Gulp Snippets Gulp代码段 HTML CSS Class Completion CSS class提示 HTML CSS