中文代码示例之Vuejs入门教程(一)
为了检验中文命名在主流框架中的支持程度, 在vuejs官方入门教程第一部分的示例代码中尽量使用了中文命名. 所有演示都在本地测试通过, 源码在这里. 下面省略了很多原教程的说明内容, 而着重于代码示例本身. 欢迎问题/批评.
声明式渲染
<div id="元素id"> <p>{{ 问候 }}</p> </div>
var 应用1 = new Vue({ el: '#元素id', data: { 问候: '吃了么?' } })
打开你的浏览器的控制台 (就在这个页面打开),并修改应用1.问候
,你将看到上例相应地更新。
<div id="元素id2"> <span v-bind:title="动态绑定信息"> 鼠标悬停几秒钟查看此处动态绑定的提示信息! </span> </div>
var 应用2 = new Vue({ el: '#元素id2', data: { 动态绑定信息: '页面加载于 ' + new Date().toLocaleString() } })
再次打开浏览器的 JavaScript 控制台输入应用2.动态绑定信息 = '新消息'
,就会再一次看到这个绑定了title
属性的HTML已经进行了更新
条件与循环
<div id="元素id3"> <p v-if="看得到">现在你看到我了</p> </div>
var 应用3 = new Vue({ el: '#元素id3', data: { 看得到: true } })
继续在控制台设置 应用3.看得到 = false,你会发现“现在你看到我了”消失了。
<div id="元素id4"> <ol> <li v-for="任务 in 任务表"> {{ 任务.内容 }} </li> </ol> </div>
var 应用4 = new Vue({ el: '#元素id4', data: { 任务表: [ { 内容: '学习 JavaScript' }, { 内容: '学习 Vue' }, { 内容: '整个牛项目' } ] } })
警告如下, 但列表仍然显示. 已经在Vue项目新建issue
[Vue warn]: Error compiling template: <div id="元素id4"> <ol> <li v-for="任务 in 任务表"> {{ 任务.内容 }} </li> </ol> </div> - invalid v-for alias "任务" in expression: v-for="任务 in 任务表" (found in <Root>)
在控制台里,输入应用4.任务表.push({ 内容: '新项目' })
,你会发现列表中添加了一个新项。
处理用户输入
v-on:click
支持中文方法名, 但需要()
. 为此在Vue项目新建issue, 经社区建议得知并检验, 另一种方式@click
也支持中文命名, 同样需要()
.
<div id="元素id5"> <p>{{ 问好 }}</p> <button @click="倒着说()">@click有效</button> <button v-on:click="倒着说()">v-on:click有效</button> </div>
var 应用5 = new Vue({ el: '#元素id5', data: { 问好: '你好' }, methods: { 倒着说: function () { this.问好 = this.问好.split('').reverse().join('') } } })
表单输入和应用状态之间的双向绑定:
<div id="元素id6"> <p>{{ 问好 }}</p> <input v-model="问好"> </div>
var 应用6 = new Vue({ el: '#元素id6', data: { 问好: '你好!' } })
组件化应用构建
<div id="元素id7"> <ol> <todo-item v-for="物品 in 购物单" v-bind:待购="物品" v-bind:key="物品.序号"> </todo-item> </ol> </div>
Vue.component('todo-item', { props: ['待购'], template: '<li>{{ 待购.名称 }}</li>' }) var 应用7 = new Vue({ el: '#元素id7', data: { 购物单: [ { 序号: 0, 名称: '蔬菜' }, { 序号: 1, 名称: '肉' }, { 序号: 2, 名称: '随便啥' } ] } })
这里的HTML标签todo-item
和其他标签(如div, ol)一样, 不支持中文命名.
核心基本功能介绍结束.
后记
初步看来Vuejs对中文命名的支持不错, 尤其是模板的部分. 个别改进建议已经在Vue的github库以issue的方式提出, 社区的活跃度很高, 开发者对这些issue的反应很快, 标记上了”改进”标签, 并针对一个不支持中文命名的问题提供了解决方案.
感觉此类实践可以促进与其他开源社区的交流, 并推进框架的业务代码中对中文(Unicode)命名的支持程度.
2017-11-09
11/20/2017 补记:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
日语编程语言"抚子" - 第三版特色初探
它山之石可以攻玉. 学习其他的母语编程语言, 相信对中文编程语言的设计和实践有借鉴意义. 本人刚刚开始接触"抚子"语言, 从官方文档开始探索. 以下试图突出一些发现的特色和亮点, 更完整的语法列表请见讨论组主题帖. 一些背景资料: 官方网站 第三版(最新)源码库, 用JavaScript实现, 代码提交从2017/2至今 第二版源码库, 用C#实现. 代码提交从2010/6到2016/2. 第一版源码库, 用Pascal实现, 最近仍然在更新. 最早代码提交是2008年, 但应该在更早几年前就已经成型. 下面的示例代码源自第三版语法文档. 限于日语水平, 对它的示例源码也许有理解出入. 为方便理解, 已把它们转成对应的中文, 词序有不少调整. 如发现大的出入, 非常欢迎到主题帖批评指正. 接近日语自然语言的语法 比如它允许多种方式赋值: 价格是3000 # 原代码: 値段は3000 价格=2000 置价格为4000 # 値段に4000を代入。 很明显它支持是无空格语法, 也同时支持传统(=)赋值和接近自然语言的赋值方式. 这个风格贯穿所有语法.又如条件语句: A = 4 如果A不是5 ...
- 下一篇
死磕 java集合之PriorityQueue源码分析
死磕 java集合之PriorityQueue源码分析问题(1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介优先级队列,是0个或多个元素的集合,集合中的每个元素都有一个权重值,每次出队都弹出优先级最大或最小的元素。 一般来说,优先级队列使用堆来实现。 还记得堆的相关知识吗?链接直达【拜托,面试别再问我堆(排序)了!】。 那么Java里面是如何通过“堆”这个数据结构来实现优先级队列的呢? 让我们一起来学习吧。 源码分析主要属性// 默认容量private static final int DEFAULT_INITIAL_CAPACITY = 11;// 存储元素的地方transient Object[] queue; // non-private to simplify nested class access// 元素个数private int size = 0;// 比较器private final Comparator<? super E> comparator;/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G