vue 总结2

1、使用html模板的方式

html

<div v-html="htmldome"></div>

<div v-html="htmlfun"></div>

scrtip

export default{

data(){

return {

htmldome:"<span>我是字符串</span>"

}

},

methods:{

htmlfun:function(){

return "<div>我是函数返回的</div>"

}

}

}

生成的html页面

<div>

<span>我是字符串</span>

</div>

<div>

<div>我是函数返回的</div>

</div>

2、v-model自定义组件

默认的v-model双向绑定

<input v-model="something">

可以写成

<input v-bind:value="something" v-on:input="something = $event.target.value">

其中v-bind:value和v-on:input是固定写法,接受一个value属性,在有新的值的时候触发input事件

组件里代码例子

html

<textarea ref="textarea" v-bind:value="value" v-on:input="updataValue($event.target.value)"></textarea>

script

export default {

methods:{

updataValue:function(value){

this.$emit(‘input‘,value)‘

}

}

}

3、列表页内容溢出,产生滚动效果,监听屏幕高度

假设要打开一个页面,编写这个页面的组件如下

html

<template>

<div>

<div class="header" ref="diyheader></div>

<div class="diybody" :style="{‘height‘:currentHeight + ‘px‘}">

<div>

<!--主体内容-->

</div>

</div>

</div>

</template>

script

export default {

name:"diypage",

data(){

return{

currentHeight:this.height,

}

},

watch:{

height(val){

if(val){

this.currentHeight=val;

}

}

},

mounted(){

this.currentHeight=document.documentElement.clientHeight - this.$refs.diyheader.offsetHeight;

}

}

4、在vue中使用canvas,引入html2canvas

引入html2canvas

npm install html2canvas //加--save 安装失败

script

import html2canvas from ‘html2canvas‘

makeImage(){

html2canvas(document.getElementById("view"),{

onredered:function(canvas){

console.log(canvas.toDataURL("image/png"))    //使用html2canvas转成base64数据流

}

})

}

5、使用路由进行数据传递

1)使用路由传递的内容只能是字符串,不是的要转成字符串才可以

2)传递的参数要在路由配置页面写明,只有该参数才能获取数据

3)配置页面要有设置name属性

路由配置页面

{

path:‘/detail:listdata‘

name:‘detail‘,

component:Detail

}

上一级页面

html

<div :to="{ path:‘detail‘,name:‘detail‘,params:{listdata:JSON.stringify(data)}}">点击我进入一个页面,并带参数</div> //传递数据

下一级页面

script

export default{

data(){

return{

cutdata:JSON.parser(this.$route.params.listdata) //获取数据

}

}

}

6、实现跨路由刷新操作

利用localStorage缓存机制和路由跳转执行mounted的方式来实现

localStorage中存的都是字符串,所有数字‘0’,会变成字符串,不要用这个来作为初始值

上一级页面A页面

export default {

mounted(){

this.watchStorage()

},

methods:{

watchStorage(){

var num=localStorage.getItem("num");

if(!num){     //判断num是否存在,不存在,赋初始值1;存在则判断是否为2,成立怎刷新页面

localStorage.setItem("num",1);

}else if(num==2){

console.log("执行刷新函数")

}

}

}

}

下一级页面B页面

html

<div @click="uppagedata">我要刷新A页面的数据</div>

script

export default {

methods:{

uppagedata:function(){

localStorage.setItem("num",2);

}

}

}

时间: 2024-10-07 02:14:34

vue 总结2的相关文章

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

在浏览器上安装 Vue Devtools工具

Vue.js devtools是基于google chrome浏览器的一款调试vue.js应用的开发者浏览器扩展,可以在浏览器开发者工具下调试代码. 1)首先在github下载devtools源码,地址:https://github.com/vuejs/vue-devtools. 2)下载好后进入vue-devtools-master工程 执行cnpm install, 下载依赖,然后执行npm run build,编译源程序. 3)编译完成后,目录结构如下: 修改shells.chrome目录

vue.js 入门

简单一句话来描述:vue.js是一个前端框架. 官方文档:https://cn.vuejs.org/v2/guide/index.html 虽然,我以前也会改一些前端样式,但主要是基于HTML和CSS,HTML主要控制页面的结构,CSS主要来控制样式.涉及到JavaScript就比较小白了. 我花了一个下午照着官方文档做练习,当然是只创建一个xxx_demo.html文件,在<script></script> 标签对之间写 Vue.js语法.这不算错,但在工程化的今天,这么学得猴年

Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装).安装完成之后,打开命令行工具,输入 node -v,如果出现相应的版本号,则说明安装成功. npm包管理器,是集成在node中的,所以,直接输入 npm -v就会显示出npm的版本信息. 2.安装cnpm 在命令行中输入 npm install -g cnpm --registry=http://registr

Vue.js项目模板搭建

前言 从今年(2017年)年初起,我们团队开始引入「Vue.js」开发移动端的产品.作为团队的领头人,我的首要任务就是设计 整体的架构 .一个良好的架构必定是具备丰富的开发经验后才能搭建出来的.虽然我有多年的前端开发经验,但就「Vue.js」来说,仍然是个新手.所幸「Vue.js」有一个配套工具「Vue-CLI」,它提供了一些比较成熟的项目模板,很大程度上降低了上手的难度.然而,很多具体的问题还是要自己思考和解决的. 项目划分 我们公司的H5产品大部分是嵌套在手机客户端里面的页面.每个项目的功能

vue项目搭建

VUE项目搭建 # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # 安装依赖,走你 $ cd my-project $ npm install $ npm run dev

Vue内容分发slot

前面的话 为了让组件可以组合,需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 “transclusion” ).Vue实现了一个内容分发 API,参照了当前 Web 组件规范草案,使用特殊的 <slot> 元素作为原始内容的插槽.本文将详细介绍Vue内容分发slot 编译作用域 在深入内容分发 API 之前,先明确内容在哪个作用域里编译.假定模板为 <child-component> {{ message }} </child-compone

一步一步学习Vue(十一)

本篇继续学习vuex,还是以实例为主:我们以一步一步学Vue(四)中讲述的例子为基础,对其改造,基于vuex重构一遍,这是原始的代码: todolist.js ; (function () { var list = []; var Todo = (function () { var id = 1; return function (title, desc) { this.title = title; this.desc = desc; this.id = id++; } })(); /** *

vue.js路由

Vue.js 路由 Vue.js 路由允许我们通过不同的 URL 访问不同的内容. 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA). Vue.js 路由需要载入 vue-router 库 中文文档地址:vue-router文档. 安装 1.直接下载 / CDN https://unpkg.com/vue-router/dist/vue-router.js NPM 推荐使用淘宝镜像: cnpm install vue-route

【Vue】详解Vue生命周期

Vue实例的生命周期全过程(图) (这里的红边圆角矩形内的都是对应的Vue实例的钩子函数) 在beforeCreate和created钩子函数间的生命周期 在beforeCreate和created之间,进行数据观测(data observer) ,也就是在这个时候开始监控data中的数据变化了,同时初始化事件 created钩子函数和beforeMount间的生命周期 对于created钩子函数和beforeMount间可能会让人感到有些迷惑,下面我就来解释一下: el选项的有无对生命周期过程