美文网首页
VUE用法总结

VUE用法总结

作者: 热心程序猿黄帅哥 | 来源:发表于2019-01-14 10:40 被阅读0次

    1.请求方法:
    vue-resource是一个通过XMLHttpRequest或者JSONP技术实现异步加载服务端数据的插件。

    引入<script src="../vue-resource.js"></script>

    this.$http.get(url+params).then(function(){})
    this.$http.post(url,params).then(function(){})
    

    vue-cli:
    npm i vue-resource --save

    然后在main.js里:

    import VueResource from 'vue-resource';
    Vue.use(VueResource);

    1. ref获取dom:
     <input type="text"
                class="input" 
                id="pickdate_start" 
                v-model="startDate" 
                ref="newStart"
      />
    
         Vue.set(container, 'startDate', this.$refs.newStart.value); 
        // 目标容器,data参数名,ref值
    
    1. v-for和v-if共用优先级渲染数据:

    li只渲染前5条数据,先在计算属性里判断,再渲染过滤后的数组

    computed: {
        activeListCon: function() {
          return this.ListCon.filter(function(List,index) {
            return index<5;
          });
        },
      },
    
     <li
                  class="list_item mui-card"
                  v-for="(List,index) in activeListCon "
                  :key="index"
                >
    
    1. vue 动态加载图片src路径的解决办法:
     <ul>
          <li class="list" v-for="item in materialData" :key="item.id">
            <img :src="item.url" alt>
            <p>{{item.title}}</p>
          </li>
        </ul>
    
     data() {
        return {
          materialData: [
            {
              id: "001",
              title: "哈哈哈哈",
              creater: "黄哈哈",
              url: require("../imgs/defultImg.png")
            },
            {
              id: "002",
              title: "哈哈哈哈",
              creater: "黄哈哈",
              url: require("../imgs/testImg1.jpg")
            }
          ]
        };
      },
    
    1. VUE请求在header加上token:
      Vue.http.headers.common['token'] = localStorage.getItem("token");
    
    1. 在获取完数据之后执行某个函数:
    var effectAnalysis = new Vue({
        el: "#container",
        data: {
            analysisRank: [], 
            topParams: {
                "page": 1,
                "pageSize": 6,
                "flag": 7,
                "sortFlag": 1
            }
        },
        mounted: function () {
            var _this = this;
            _this.getData();
        },
        watch: { // 监听数据异步获取完成之后执行函数
            analysisRank: function () {  // 监听data的analysisRank属性
                var _this = this;
                _this.$nextTick(function () {
                    computProcess()
                });
            }
        },
        methods: {
            //获取数据
            getData: function () {
                var _this = this;
                _this.$http.get(HTTP.url + "rest/spread/analysisRank").then(function (res) {
                    _this.analysisRank = res.body.data;
                    return echartBar(res.body.data);
                });
            },
    

    7、路由跳转以及传参:

    import Router from 'vue-router'
    
    Vue.use(Router)
    
    export default new Router({
      routes: [
        { // 路径
          path: '/',
          name: 'init',
          component: resolve => {
            require(['@/components/weibo/init.vue'], resolve);
          }
        },
    })
     this.$router.push({
            name: "init",
            params: {
              type: 0 // 参数
            }
          });
    

    8、设置接口请求头:

    http: {
       // 设置请求头
       headers: {
         token: userInfo.token,
         siteCode: userInfo.siteCode,
         region: userInfo.region
       }
     },
    

    9、文本域监听v-model:

     <textarea cols="30" rows="6" v-model="textAreaData" id="target" ref="textarea"></textarea>
     data() {
        return {
          textAreaData: "", // 文本域
        };
     watch: {
        // 监听文本域输入变化
        textAreaData: function(data) {
          this.textAreaData = data;
        },
    
      },
    

    10、vue分页插件v-page:

      https://terryz.gitee.io/vue/#/page/demo
    

    11、v-for 渲染多层属性时候出现undefind:
    eg: data:[
    {
    a:1,
    b:{c:2,d:3}
    }
    ];
    v-for='(item,index) in data ;
    item.a 和item.b能打印出来,而item.b.c是undefind;

    解决办法:在外层包裹一层 v-if=‘item.b’ 判断

    12、解析后台传值富文本带有html标签的字符串原样输出:

          使用 v-html,但是在v-for中v-html默认将标签去除了,v-html解析vue的data下的直系属性状态,则可以。
    

    未完待续。。。

    相关文章

      网友评论

          本文标题:VUE用法总结

          本文链接:https://www.haomeiwen.com/subject/vgkddqtx.html