• vue.js入门语法


    1.入门

    <div id="vue_det">
        <h1>site : {{site}}</h1>   //两个大括号显示参数
        <h1>url : {{url}}</h1>
        <h1>{{details()}}</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#vue_det',       //绑定的元素的id或class
            data: {               //初始化数据
                site: "菜鸟教程",
                url: "www.runoob.com",
                alexa: "10000"
            },
            methods: {           //方法体
                details: function() {
                                 //方法用data的数据用this
                    return  this.site + " - 学的不仅是技术,更是梦想!";
                }
            }
        })
    </script>

    2.模板语法

    1.v-html:输出HTML代码(v-html="<h1>菜鸟教程</h1>")
    2.v-bind:输出HTML属性(v-bind:style="style='color: red;'")或(v-bind:class;id;href)
    3.v-on:点击事件(v-on:click="方法名")等(submit.prevent)
    4.v-model:绑定数据(v-model="data的数据")=>修饰符(v-model.lazy    .number   .trim)
    5.v-if:条件语句(v-if: v-else-if: v-else:)(v-if="data的数据")
    6.v-show:是否显示html

    3.循环语句

    <div id="app">
      <ul>
        //值 键 索引
        <li v-for="(value, key, index) in object">
         {{ index }}. {{ key }} : {{ value }}
        </li>
      </ul>
    </div>
    
    <script>
    new Vue({
      el: '#app',
      data: {
        object: {
          name: '菜鸟教程',
          url: 'http://www.runoob.com',
          slogan: '学的不仅是技术,更是梦想!'
        }
      }
    })

    4.计算属性

    computed:obj设置{get;set;}或者函数

    5.监听属性

    watch: https://www.runoob.com/vue2/vue-watch.html

    6.组件,封装一段html和js代码,然后以tagName标签形式调用

    Vue.component(tagName, options)    https://www.runoob.com/vue2/vue-component.html

    7.自定义指令 directives

    <div id="app">
      <p>页面载入时,input 元素自动获取焦点:</p>
      <input v-focus>
    </div>
    
    <script>
    // 创建根实例
    new Vue({
      el: '#app',
      directives: {
        // 注册一个局部的自定义指令 v-focus
        focus: {
          // 指令的定义
          inserted: function (el) {
            // 聚焦元素
            el.focus()
          }
        }
      }
    })
    </script>

    8.路由

    <div id="app">
      <h1>Hello App!</h1>
      <p>
        <!-- 使用 router-link 组件来导航. -->
        <!-- 通过传入 `to` 属性指定链接. -->
        <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
        <router-link to="/foo">Go to Foo</router-link>
        <router-link to="/bar">Go to Bar</router-link>
        <router-link to="/aaa">Go to aaa</router-link>
      </p>
      <!-- 路由出口 -->
      <!-- 路由匹配到的组件将渲染在这里 -->
      <router-view></router-view>
    </div>
    
    <script>
    // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
    
    // 1. 定义(路由)组件。
    // 可以从其他文件 import 进来
    const Foo = { template: '<div>foo</div>' }
    const Bar = { template: '<div>bar</div>' }
    const aaa = { template: '<div>aaa</div>' }
    
    // 2. 定义路由
    // 每个路由应该映射一个组件。 其中"component" 可以是
    // 通过 Vue.extend() 创建的组件构造器,
    // 或者,只是一个组件配置对象。
    // 我们晚点再讨论嵌套路由。
    const routepath = [
      { path: '/foo', component: Foo },
      { path: '/bar', component: Bar },
      { path: '/aaa', component: aaa }
    ]
    
    // 3. 创建 router 实例,然后传 `routes` 配置
    // 你还可以传别的配置参数, 不过先这么简单着吧。
    const router = new VueRouter({
      routes:routepath// (缩写)相当于 routes: routes
    })
    
    // 4. 创建和挂载根实例。
    // 记得要通过 router 配置参数注入路由,
    // 从而让整个应用都有路由功能
    const app = new Vue({
      router
    }).$mount('#app')
    
    // 现在,应用已经启动了!
    </script>

    10.Ajax(axios)   https://www.runoob.com/vue2/vuejs-ajax-axios.html

    <script type = "text/javascript">
    new Vue({
      el: '#app',
      data () {
        return {
          info: null
        }
      },
      mounted () {
        axios
          .get('https://www.runoob.com/try/ajax/json_demo.json')
          //.post('https://www.runoob.com/try/ajax/demo_axios_post.php')
          .then(response => (this.info = response))
          .catch(function (error) { // 请求失败处理
            console.log(error);
          });
      }
    })
    </script>

    //get请求设置参数直接 url?id=123
    // 也可以通过 params 设置参数: axios.get('/user', { params: { ID: 12345 } }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); });

    //post请求参数设置

    //axios.post('/user', { firstName: 'Fred', lastName: 'Flintstone' }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); });

    多个并发请求

    function getUserAccount() {
      return axios.get('/user/12345');
    }
     
    function getUserPermissions() {
      return axios.get('/user/12345/permissions');
    }
    axios.all([getUserAccount(), getUserPermissions()])
      .then(axios.spread(function (acct, perms) {
        // 两个请求现在都执行完成
      }));
  • 相关阅读:
    tree
    单向链表反转
    libev使用方法
    PowerManagerService流程分析
    Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”
    解决git合并冲突问题
    python之字典
    Django----admin管理工具
    流程控制,以及字符串
    python入门
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/11678790.html
Copyright © 2020-2023  润新知