• 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);
                   } 
              } 
         }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    基本sql查询语句练习
    SZU:J38 Number Base Conversion
    SZU:B54 Dual Palindromes
    SZU:A66 Plastic Digits
    HOJ:2031 进制转换
    SZU:G34 Love code
    SZU:A25 Favorite Number
    Vijos:P1001谁拿了最多奖学金
    SZU:A26 Anagram
    SZU:A12 Jumping up and down
  • 原文地址:https://www.cnblogs.com/webzhanghua/p/7436258.html
Copyright © 2020-2023  润新知